微机原理作业
南京邮电大学微机原理作业
斜体下划线部分可跳过
用户定义的中断服务程序有两个设计方法:
①定义用户中断服务程序为“71H型”
②定义用户中断服务程序为“0AH型”
用户中断服务程序结束
①若用户中断定义为0AH型,服务程序结束前只向主8259送结束命令
5.用系统机串行口采用中断方式完成字符发送和接收,编程时应采取哪些措施?
答:⑴中断允许寄存器相应位置1
⑵MODEM控制寄存器 ,即 打通8250的中断请求通道。
⑶8259相应中断屏蔽位置0(主8259 、 )— 8259
⑷CPU处于开中断(STI)— CPU
6.A、B两台PC机利用主串口进行点-点单工通信(不用联络线),发送采用查询方式,接收采用中断方式。一帧字符包含7个数据位,1个停止位,1个校验位,通信速率为4800波特(分频系数为0018H)。
STI;开中断
SCAN:MOVAH, 01H;设置功能号
INT16H;有键入?
JZSCAN;否循环
CALLRESET;恢复现场
MOVAH, 4CH
INT21H
;--------------------------------------
SERVICEPROC
PUSHA
PUSHDS;保护现场
MOVAX, DATA
MESGDB'Welcome!','$';显示的字符串
DATAENDS
CODESEGMENTUSE16
ASSUMECS:CODE, DS:DATA
BEG:MOVAX, DATA
MOVDS, AX
CLI;关中断
CALLI8259;8259初始化
微机原理作业及参考答案
第一章计算机基础(P32)1-1电子管,晶体管,中小规模集成电路、大规模、超大规模集成电路。
1-2把CPU和一组称为寄存器(Registers)的特殊存储器集成在一片大规模集成电路或超大规模集成电路封装之中,这个器件才被称为微处理器。
以微处理器为核心,配上由大规模集成电路制作的只读存储器(ROM)、读写存储器(RAM)、输入/输出、接口电路及系统总线等所组成的计算机,称为微型计算机。
微型计算机系统是微型计算机配置相应的系统软件,应用软件及外部设备等.1-3写出下列机器数的真值:(1)01101110 (2)10001101(3)01011001 (4)11001110答案:(1)+110 (2)-13(原码) -114(反码)-115(补码)(3)+89 (4)-78(原码)-49(反码)-50(补码)1-4写出下列二进制数的原码、反码和补码(设字长为8位):(1)+010111 (2)+101011(3)-101000 (4)-111111答案:(1)[x]原=00010111 [x]反= 00010111 [x]补= 00010111(2)[x]原=00101011 [x]反= 00101011 [x]补= 00101011(3)[x]原=10101000 [x]反= 11010111 [x]补= 11011000(4)[x]原=10111111 [x]反= 11000000 [x]补=110000011-5 当下列各二进制数分别代表原码,反码,和补码时,其等效的十进制数值为多少?(1)00001110 表示原码14,反码14,表示补码为14(2)11111111 表示原码-127,反码-0,表示补码为-1(3)10000000 表示原码-0,反码-127,表示补码为-128(4)10000001 表示原码-1,反码-126,表示补码为-1271-6 已知x1=+0010100,y1=+0100001,x2=-0010100,y2=-0100001,试计算下列各式。
微机原理试题作业2(答案)
作业1(请同学们作业时,不要改变题号、字体及答案的颜色,仅修改表内答案字母)一、判断题[30分](在表格内填空,正确填A,错误填B请不要改变字体的颜色)1.指令MOV AX,[BX]的源操作数是寄存器寻址方式。
2.对堆栈区的操作必须遵循先进先出的原则。
3.比较两个带符号数的大小,可根据CF标志来判断。
4.逻辑操作符AND,OR,XOR和NOT,只能用于数字表达式。
5.不能给段寄存器赋立即数。
6.OF位可用来表示有符号数的溢出。
7.无条件转移指令只能用于段内直接转移。
8.MOV AX,[BP]的源操作数的物理地址为16*(DS)+(BP)。
9.指令MOV DI,OFFSET [BX][SI]是正确的。
10.指令MOV CS,BX是非法的。
11.指令NOT AX,BX是合法的。
12.MOV [BX][BP],AX是对的。
13.要把变量BUFF的有效地址送给BX,可用MOV BX,BUFF指令。
14.JMP指令要影响标志位。
15.汇编程序就是汇编语言程序。
二、选择题[60分](在表格内填写正确答案的大写字母,请不要改变字体的颜色,当有多个A时,表示是多选题)1.指令ADD CX,55H[BP]的源操作数的寻址方式是(D )。
(A) 寄存器寻址 (B) 直接寻址 (C) 寄存器间接寻址 (D) 寄存器相对寻址2.设(SS)=3300H,(SP)=1140H,在堆栈中压入5个字数据后,又弹出两个字数据,则(SP)=( A) 。
(A) 113AH (B) 114AH (C) 1144H (D) 1140H3.若SI=0053H,BP=0054H,执行SUB SI,BP后,则( C)。
(A) CF=0,OF=0 (B) CF=0,OF=1 (C) CF=1,OF=0 (D) CF=1,OF=14.已知(BP)=0100H,(DS)=7000H,(SS)=8000H,(80100H)=24H,(80101H)=5AH,(70100H)=01H,(70101H)=02H,指令MOV BX,[BP]执行后,(BX)=( D) 。
微机原理100道题答案
微机原理作业答案40.源程序如下:CMP AX,BXJNC L1JZ L2JNS L3JNO L4JMP L5设AX=74C3H,BX=95C3H,则程序最后将转到哪个标号处执行?试说明理由。
答:∵ 74C3H- 95C3HDF00H且有:CF=1, ZF=0, SF=1, OF=1∴程序将转到L5标号处执行。
41.设IBM PC微机内存中某个单元的物理地址是12345H,试完成下列不同的逻辑地址表示:(1)1234H:___H(2)____H:0345H答:(1)1234H:05H (2) 1200H:0345H42.假设某程序执行过程中,(SS)=0950H,(SP)=64H,试问该用户程序的堆栈底部物理地址是多少?答:(SS)*10H+(SP)-1=09563H43.设堆栈段寄存器(SS)=0E4BH,程序中设堆栈长度为200H个字节。
试计算出堆栈底部字单元物理地址,堆栈指针SP初始值(即堆栈中没有数据时)和SP初始值指向的物理地址。
答:物理地址为:0E6AFH-2, SP的初始值为200H,指向的物理地址为:0E6AFH.。
44.对于由8086CPU组成的系统,堆栈的位置如何确立?堆栈的首址(即:SS中的值)是不是栈底?为什么?答:8086系统中堆栈的位置由SS和SP初始化后确立:其中(SS)*16决定了堆栈段起始单元的地址,即堆栈段首址;(SS)*16+(SP初值)-1决定了堆栈段最后一个单元的地址,即栈底;(SS)*16+(SP现值)决定了堆栈段当前栈顶。
显然,堆栈首址并不是栈低。
一般来说,在堆栈所在的内存区内,栈底为高地址端。
堆栈初始化后,栈顶指向栈底+1单元的偏移地址。
当堆栈压入数据后,栈顶地址总是小于栈底地址(因为一次压入两个字节数据),位于低地址端。
45.设8255A的4个端口地址分别为0C0H、0C2H、0C4H和0C6H,要求用按位置位/复位控制字使PC6输出方波信号,试编程实现。
微机原理练习题(含答案)
1.已知下列数组语句:0RG 0100HARY DW 3, $+4, 5, 6CNT EQU $-ARYDB 7,8,CNT,9问执行语句MOV AX, ARY +2和MOV BX,ARY +10后,AX=? BX=?答: AX=(ARY +2) = (0102H) =0106H; BX=( ARY +10) = (010AH) =0908H。
2.某程序设置的数据区如下所示。
DATA SEGMENTDB1 DB 12H, 34H, 0, 56HDW1 DW 78H, 90H, 0AB46H, 1234HADR1 DW DB1ADR2 DW DW1AAA DW $-DB1BUF DB 5 DUP(0)DATA ENDS画出该数据段内容在内存中的存放形式(要求用十六进制补码表示,按字节组织)。
3.分析下列程序:A1 DB 10 DUP(7)A2 DB 0,1,2,3,4,5,6,7,8,9……MOV CX, LENGTH AlMOV SI, SIZE A1 - TYPE AlLP: MOV AL, A2[SI]MOV Al[SI],ALSUB SI,TYPE A1DEC CXJN2 LPHLT问:(1)该程序的功能是什么?(2)该程序执行后,A1单元开始的10个字节内容是什么?答:(1)该程序的功能是将从A2单元开始存放的10个字节数据传送到从Al单元开始的10个字节单元中。
(2)程序执行后,Al单元开始的10个字节内容是0,1,2,3,4,5,6,7,8,9。
4. 试分析下列程序:BUF DB 0BHMOV AL, BUFCALL FAR PTR HECAHECA PROC FARCMP AL, 10JC LPADD AL, 7LP: ADD AL, 30HMOV DL, ALMOV SH, 2INT 21HRETHECA ENDP问:(1)该程序是什么结构的程序?功能是什么?(2)程序执行后,DL=?(3)屏幕上显示输出的字符是什么?答:(1)该程序为主程序调用子程序的结构,且为远调用子程序;功能是将BUF单元中的0~F一位十六进制数转换成对应的ASCII码。
微机原理习题集
微机原理习题集第⼀章绪论作业题⼀、选择题1、⼝的基本功能是(C)。
A.输⼊缓冲 B.输出锁存 C.输⼊缓冲,输出锁存D.编址使⽤2所谓“端⼝”是指⼀些可以由CPU读或写的( C )A.RAMB.ROMC.寄存器D.缓冲器⼆、填空题1、实质上,微处理器对外设的访问就是对外设的中的访问。
(接⼝,端⼝)2、请写出三种常见的微处理器:________、________、________。
(8086;80286;80386)3、计算机CPU与输⼊/输出设备之间交换的信息包括________、________和________三类信号。
(数据信息;地址信息;控制信息)4、I/O接⼝按使⽤的信号类型包括、。
(数字、模拟)5、所谓接⼝就是与的连接部件(电路),它是CPU与外界进⾏信息交换的(CPU ;外设;中间电路)6、开关量是指只有的量,可以⽤⼀个来表⽰。
(两个状态⼆进制)7、⼀个典型的I/O接⼝,⼀般具有、和三种端⼝。
(数据、控制;地址)三、简答题1、简述微处理器、微计算机及微计算机系统三个术语的内涵。
答:微处理器是微计算机系统的核⼼硬件部件,对系统的性能起决定性的影响。
微计算机包括微处理器、存储器、I/O接⼝电路及系统总线。
微计算机系统是在微计算机的基础上配上相应的外部设备和各种软件,形成⼀个完整的、独⽴的信息处理系统。
2、80X86微处理器有⼏代?各代的名称是什么?答:从体系结构上可分为3代:8080/8085:8位机。
8086/8088/80286:16位机。
80386/80486:32位机。
思考题1、简述微处理器的发展过程。
2、什么是接⼝?其主要组成是什么?3、接⼝有哪些功能?讨论题1、为什么要⽤I/O接⼝?2、简述接⼝的分类第⼆章8086微处理器作业题⼀、选择题1、8088CPU芯⽚的时序中,不加等待的⼀个总线周期需时钟周期数为()DA 1B 2C 3D 42、8088CPU上INTR信号为下⾯那种信号有效?()A上升沿下降沿⾼电平低电平3、8088CPU中的SP寄存器是⼀个()位的寄存器B8 16 20 244、⼯作在最⼩模式下,8088CPU芯⽚的时序中,将地址信号锁存的信号是()CDT/R DEN ALE AEN5、8086有两种⼯作⽅式,当8086处于最⼩⽅式时,MN/MX接( ) CA.+12VB.-12VC.+5VD.地6、存取时间是指( )BA.存储器的读出时间B.存储器进⾏连续读和写操作所允许的最短时间间隔C.存储器进⾏连续写操作所允许的最短时间间隔D.存储器进⾏连续读操作所允许的最短时间间隔⼆、判断题1、8086CPU在响应中断时,执⾏两个中断响应周期。
微机原理作业答案
1.按照16位微处理器的寻址方式看,分别指出下列指令中源操作数和目的操作数的寻址方式。
解:(1) mov ax, 11h源操作数:立即寻址目的操作数:寄存器寻址(2) mov [si], cx源操作数:寄存器寻址目的操作数:变址寻址(3) mov 2[di], bx源操作数:寄存器寻址目的操作数:相对变址寻址(4) mov 2[bx+si], dx源操作数:寄存器寻址目的操作数:相对基址(加)变址寻址(5) mov cx, [8000h]源操作数:直接寻址目的操作数:寄存器寻址(6) mov dx, [bx] [di]源操作数:基址(加)变址寻址目的操作数:寄存器寻址(7) mov ax, [bx]源操作数:基址寻址目的操作数:寄存器寻址(8) mov dx, [bp+8]源操作数:相对基址寻址目的操作数:寄存器寻址3. 指出下列指令的错误原因解:(1)inc [si]目的操作数类型不明确(2)mov eax, ax类型不一致(3)mov 2, bx立即数不能作目的操作数(4)mov [ebx], [esi]源操作数和目的操作数不能同时为存储器操作数(5)mov ax, [bx+bp]源操作数寻址方式错,两个寄存器都是基址寄存器(6)mov ax, [di+di]基址变址寻址方式不能同时为变址寄存器(7)mov ah, 270270超出了ah可以容纳的数据范围(8) mov cs, 4000hcs由系统自动赋值(9) push alPush要求操作数为16位或32位(10) shl ax, 8移位次数大于1,应先将移位次数送cl,再移位6.假定 AX=1234H,BX=00FFH,下面每条指令单独执行后,AX和BX 的值分别是多少?①AND AX, BX AX=0034H,BX=00FFH②TEST AX, BX AX=1234H,BX=00FFH③ XOR AX, BX AX=12CBH,BX=00FFH④ XCHG AX, BX AX=00FFH,BX=1234H⑤ ADD AX, BX AX=1333H,BX=00FFH⑥ SUB BX, AX AX=1234H,BX=0EECBH⑦OR BX, AX AX=1234H,BX=12FFH⑧CMP AX, BX AX=1234H,BX=00FH8. 已知(DS)=1000H,(EBX)=0100H,(ESI)=0004H,存储单元[10100H~[10107H]依次存放11H 22H 33H 44H 55H 66H 77H 88H,[10004H]~[10007H]依次存放2AH2BH 2CH 2DH,说明下列每条指令执行后AX的值。
微机原理作业_学生2010_9_23
微机原理作业1.8086C P U由哪两部分组成?它们的主要功能是什么?2.微型计算机系统由、和等组成。
3.8086CPU中的指令队列可存储个字节的指令代码,当指令队列至少空出个字节时,BIU单元便自动将指令取到指令队列中;4.8086系统中,1MB的存储空间分成两个存储体:存储体和存储体,各为字节。
5.8086系统中存储器采用什么结构?用什么信号来选中存储体?6.在8086CPU中,指令指针寄存器是。
(A) BP (B) SP (C) IP (D) DI7.8086CPU中的SP寄存器的位数是。
(A) 8位(B) 16位(C) 20位(D) 24位8.8086CPU中指令指针寄存器(IP)中存放的是。
(A)指令(B)指令偏移地址(C)操作数(D)操作数偏移地址9.若当前SS=3500H,SP=0800H,说明堆栈段在存储器中的物理地址(最大),若此时入栈10个字节,SP内容是什么?若再出栈6个字节,SP为什么值?10.下列关于8086系统堆栈的论述中,正确的是。
(A) 堆栈的工作方式是“先进后出”,入栈时SP减小(B) 堆栈的工作方式是“先进后出”,入栈时SP增大(C) 堆栈的工作方式是“先进先出”,入栈时SP减小(D)堆栈的工作方式是“先进先出”,入栈时SP增大11.8086CPU对内存读/写操作,需两个总线周期的读/写操作是。
(A) 从偶地址读/写一个字节(B) 从奇地址读/写一个字节(C) 从偶地址读/写一个字(D) 从奇地址读/写一个字12.总线周期是指。
(A) 执行一条指令所需要的时间;(B) BIU完成一次读和一次写I/O端口操作所需时间之和;(C) BIU完成一次访问存储器或I/O端口操作所需要的时间;(D) BIU完成一次读和一次写存储器操作所需时间之和。
13.8086CPU通过RESET引脚上的触发信号来引起系统复位和启动,复位时代码段寄存器CS= ,指令指针IP= 。
重新启动后,从物理地址为的地方开始执行指令。
微机原理经典课后作业,考试必考
微机原理经典课后作业,考试必考课后作业第一章作业1、若AX=AF7CH,BX=BEE7H,CPU分别执行加法指令和减法指令后各状态标志位的值是什么?2、8086系统中存储器的逻辑地址和物理地址之间有什么关系?3、设段地址为4ABFH,物理地址为50000H,求有效地址是什么?4、设CS=3100H,DS=3140H,两个段的空间均为64K个单元,问两个段重叠区为多少个单元?两个段的段空间之和为多少?5、在8086系统中,已知当前SS寄存器的内容为2345H,SP的内容0100H,请说明该堆栈段在存储器中的物理地址的范围。
若当前堆栈段中已存有10个字节的数据,那么原来SP的内容是什么数值?6、如果12MHz的振荡信号接至8284时钟输入端,其输出频率接8086/8088的CLK端。
求在插入一个等待周期的情况下从内存读一个字节数据所需的最小时间。
7、现有8个字节的数据为:34H、45H、56H、67H、78H、89H、9AH、ABH,假定它们在存储器中的物理地址为400A5H~400ACH。
若当前(DS)=4002H,求这8个数据的偏移地址。
如要以最少时间读出这些数据,需要访问存储器多少次?每次读出的数据是什么?并用图示之。
8、设段寄存器CS=2400H,指令指示器IP=6F30H,此时指令的物理地址PA 是多少?指向这一物理地址的CS值和IP值是否是唯一的?9、什么叫总线周期?8086/8088系统中的总线周期由几个时钟周期组成?如果CPU的主时钟频率为25MHz,一个时钟周期是多少?一个基本总线周期是多少时间?第三章作业3-3 若80386的控制寄存器CR0中PG、PE全为1,则CPU当前所处的工作方式如何?3-5 有一个段描述符,放在局部描述符表的第12项中,该描述符的请求特权级为2,求该描述符的选择子内容。
3-6 某一个段描述符的选择子内容为0531H,请解释该选择子的含义。
3-7在段页式管理中,若允许分页,则页的大小为多少?如果一个页面首地址为86B05000H,则上一页和下一页的页面首地址各为多少?第四章作业4-3 设有关寄存器及存储单元的内容如下:(DS)=2000H,(BX)=0100H,(SI)=0010H,(21200H)=78H,(21201H)=56H,(20100H)=68H,(21110H)=ABH,(20110H)=F4H,(20111H)=CDH,(21120H)=67H 试问下列各指令执行完后,AL或AX寄存器的内容各是什么?各指令寻址方式是什么?(1) MOV AX,1200H(2) MOV AL,BL(3) MOV AX,[1200H](4) MOV AL,[BX](5) MOV AL,1010H[BX](6) MOV AX,[BX][SI](7) MOV AL,1010H[BX][SI]4-4 判断下列指令的正误,若是错误的,请说明原因。
微机原理作业共17页
实验现象
实验成功! 验证了程序的正确性
五 感想与建议:
• 在创新基地里摸索,改进,互助,自我实现的这 几天令人难忘。
• 程序没有做完、现象没有验证,大家便久久不愿 离开,实验室的老师很理解我们,陪到很晚,还 耐心的帮助调试检查程序;任课老师尽管很累但 精神饱满,讲得很有用,当然确实需要理解和吸 收巩固,通过课后作业、实验和项目的操作,实 现了动手与动脑的完美结合,我们领会到了原来 记不住的指令的意义;还有就是同学们凑到一起 相互指导检查的感动,发现问题解决问题的自豪 与乐趣,只通过课本是难以接触到的。
微机原理作业
36、“不可能”这个字(法语是一个字 ),只 在愚人 的字典 中找得 到。--拿 破仑。 37、不要生气要争气,不要看破要突 破,不 要嫉妒 要欣赏 ,不要 托延要 积极, 不要心 动要行 动。 38、勤奋,机会,乐观是成功的三要 素。(注 意:传 统观念 认为勤 奋和机 会是成 功的要 素,但 是经过 统计学 和成功 人士的 分析得 出,乐 观是成 功的第 三要素 。
•
cmp al,11111000b
•
je one
•
mov al,11111111b
•
out 0e2h,al
•
call delay
•
out 0e0h,al
• delay proc
;
延时程序
•
push ax
•
push cx
•
mov cx,100
• b: mov ax,500
• a: dec ax
•
jnz a
37、我们唯一不会改正的缺点是软弱。——拉罗什福科
xiexie! 38、我这个人走得很慢,但是我从不后退。——亚伯拉罕·林肯
微机原理作业参考答案
MOV XX, AX
第四次
教材P. 69-70习题4.4-4.8中任选3题
习题4.4
MOV CL, 4
SHL AH, CL
MOV BL, 0FH
AND AL, BL
OR AH, AL
习题4.5
MOV CX, 8
MOV BL, 0
L1:
SHL AL, 1
RCR BL ,1
LOOP L1
INC SI
JLOOP:
INC BX
LOOP L1
(3)
本程序片段将求得的绝对值送数据段ABS开始的单元中
MOV BX, OFFSET BUF
MOV SI, OFFSET ABS
MOV CX, 50
L1:
MOV AL, [BX]
CMP AL ,0
JGE JLOOP
NEG AL
JLOOP:
MOV [SI], AL
在保护模式下,Pentium处理器可以直接寻址高达4GB的物理存储器。存储器的硬件空间被组织成64位的单元,每个64位的单元有8个可独立寻址的字节,这8个字节有连续的存储器地址,如下图所示。
在保护模式下,通过地址线A31~A3和字节选通信号BE7#~BE0#访问存储器,由地址线A31~A3选择64位的存储单元,由字节选通信号BE7#~BE0#选择相应的字节。
第五个时钟ads被置起有效地址b和第二个总线周期的总线状态被驱动送出wr被驱动为高电平表明为一个写周期cache被驱动为高电平表明该周期为非缓存式总线周期故第二个总线周期为非缓存式单次传送写周期
第一次
1.微型计算机系统有哪三个层次,简述其内涵及其联系与区别
略
2.试述冯诺依曼存储程序工作原理
微机原理作业及参考答案1
第一次课外作业:1、微型计算机由哪5个主要部件组成?微型计算机系统包含哪些部分答:微型计算机由微处理器、存储器、输入\输出接口电路、系统总线和定时电路5个主要部件组成。
微机系统包含微型计算机、外围设备、系统软件和应用软件等部分。
2、微机总线包括哪几类总线?答:包括数据总线、地址总线和控制总线。
3、请简要描述数据总线、地址总线和控制总线的基本特点。
答:○1数据总线:在MPU和其他部件之间双向传递数据信息;○2地址总线:由MPU向其他部件单向传递地址信息;○3控制总线:双向传送控制信号,一方面MPU根据指令译码结果输出控制信号,另一方面MPU响应外部器件的请求信号。
4、CPU内部由哪几个主要功能部件构成?各自的主要作用是什么?答:1.内部寄存器阵列:用来寄存或暂存参与运算的数据;2.累加器和算术运算单元:对数据进行算术运算、逻辑运算;3.指令寄存器、指令译码器、定时及各种控制信号产生电路:把用户程序中的指令暂存,翻译并按照一定的时序发出控制信号;4.内部总线:各内部器件之间信息传递。
5、指令译码器起什么作用?答:将用户程序中的指令翻译成机器码以便计算机识别和执行。
6、请简述诺依曼计算机的工作原理(指令执行过程或计算机是如何执行一条指令的)。
答:诺依曼计算机是一个存储控制结构,其工作原理是从内存中取指令,对指令译码后得到操作码和地址,从地址中取出操作数,根据操作码对操作数进行操作。
7、CPU内部16位地址寄存器如何寻址和访问CPU外部20根地址形成的1M地址空间?答:对地址进行分段。
8、什么是段地址、什么是偏移地址?答:段地址是段起始地址的高16位值;偏移地址是段内某物理单元的实际地址相对段起始地址的偏移值。
9、CPU内部的CS段寄存器和IP(或称PC)指令寄存器有什么作用?答:CS用来识别当前代码段;IP用来存储代码段偏移地址。
10、什么是物理地址、逻辑地址、有效地址和绝对地址?答:物理地址是指物理内存中的实际地址;逻辑地址指由段基址和段内偏移地址组成的地址;有效地址是指编程时使用的地址;绝对地址是指根据存储器的管理机制将有效地址转换过来与内存空间意义对应的实际地址。
微机原理作业及答案
一、二、三、四章作业第一章作业1、简述微型计算机的硬件系统结构,并说明其主要功能。
2、试利用一个字节的字长,将十进制-115转换为相应的二进制的原码、反码和补码。
解:(-115)原(11110011)2 (-115)反(10001100)(-115)补(10001101)3、已知X补1100111,则X原,2X补并判断结果是否溢出。
解:题目没有特殊说明,将最高为(第六位作为符号位)X反X补-11100110,则X原1011001 2X补X补X补110011********* 1001110 C6C5110,不溢出另外,可以补齐第七位为0或者1,再进行计算获得。
第一章作业4、十进制389对应的二进制数是110000101,BCD码是001110001001,每位数字用字符表示时ASC码是333839H。
5、下列无符号数中,最大的是(转化为10进制比较)A 11001002 B 1438C 10011000BCD D 6516 第二章作业1、8088CPU与8086CPU的差别是什么?数据线和部分引脚2、8086CPU有哪些寄存器?复位值为多少?AX BX CX DX SP BP SI DI IP CS DS ES SS FR 注意:CS:IPFFFF:0000H 3、8086系统的寻址空间采用什么结构?用什么信号作为本选信号?答:采用分体结构,将1MB的存储空间分为两个体:寄地址存储体和偶地址存储器,各为512KB。
奇地址存储器数据线与系统数据总线高八位相连,用BHE作为选通信号;偶地址存储体的数据线与系统数据总线低八位相连,用A0作为选通信号。
4、什么是存储空间的逻辑分段与存储器单元的逻辑地址?答:8086寻址空间按字节编址,存储空间为1MB,每个存储单元地址为20位。
由于CPU总线宽度和寄存器都为16位,如何形成20位地址。
物理地址段地址16有效地址地址的高16位称为段地址,存放在段寄存器。
物理地址唯一,指向一个存储单元,逻辑地址不唯一。
微机原理作业
微机原理作业第一章题1.1A 把下列十进制数转换为二进制,十六进制和BCD数;1.135.6252.548.753.376.1254.254.25题1.1B 要求同上,要转换的十进制数如下;1.67.3752.936.5268.875 4.218.0625题1.2A 写下列十进制数的原码,反码和补码表示(用8位二进制);1.+652.-1153.-654.-115题1.2B 要求同题 1.2A数据如下;1.+332.+1273.-334.-127题1.3A 用16位二进制,写出下列十进制数的原码,反码,和补码表示;1.+622.-623.+2534.-2535.+6156.-615题1.4A 写出下列用补码表示的二进制数的真直;1.011011102.010110013.100011014.11111001题1.4B 要求同题 1.4A数据如下;1.011100012.000110113.100001014.11111110 ,第三章汇编语言程序设计题3.1A在下列程序运行后,给相应的寄存器及存储单元填入运行的结果:MOV AL,10HMOV byte PTR [1000],0FFH MMOV CX,1000H BLMOV BX,2000H 1000HMOV [BX],AL BHXCHG CX,BXMOV DH,[BX] CLMOV DL,01HXCHG CX,BX CHMOV [BX],DL 2000HHLT DL题 3.1B DH要求同题 3.1A程序如下;MOV AL,50H ALMOV BP,1000HMOV BX,2000HMOV [BP],ALMOV DH,20HMOV [BX],DHMOV DL,01HMOV DL,[BX]MOV CX,3000HHLT题3.2,如在自1000H单元开始有一个100个数的数椐块。
要把它传送到自2000H开始的存储区中去,用以下三种方法,分别编制程序;1;不用数据块转送指令;2;用单个转送的数据块转送指令;3;用数据块成组转送指令;题3.3A 利用变址寄存器遍一个程序,把自1000H单元内开始的100个数转送到自1070H开始的存储区中去,题3.3B 要求用 3.3A,源地址为2050H,目的地址为2000H,数据块长度为50,题3.4 编一个程序,把自1000H单元开始的100个数转送至1050H开始的存储区中(注意数据区有重叠)。
微机原理经典课后作业,考试必考
课后作业第一章作业1、若AX=AF7CH,BX=BEE7H,CPU分别执行加法指令和减法指令后各状态标志位的值是什么?2、8086系统中存储器的逻辑地址和物理地址之间有什么关系?3、设段地址为4ABFH,物理地址为50000H,求有效地址是什么?4、设CS=3100H,DS=3140H,两个段的空间均为64K个单元,问两个段重叠区为多少个单元?两个段的段空间之和为多少?5、在8086系统中,已知当前SS寄存器的内容为2345H,SP的内容0100H,请说明该堆栈段在存储器中的物理地址的范围。
若当前堆栈段中已存有10个字节的数据,那么原来SP的内容是什么数值?6、如果12MHz的振荡信号接至8284时钟输入端,其输出频率接8086/8088的CLK端。
求在插入一个等待周期的情况下从内存读一个字节数据所需的最小时间。
7、现有8个字节的数据为:34H、45H、56H、67H、78H、89H、9AH、ABH,假定它们在存储器中的物理地址为400A5H~400ACH。
若当前(DS)=4002H,求这8个数据的偏移地址。
如要以最少时间读出这些数据,需要访问存储器多少次?每次读出的数据是什么?并用图示之。
8、设段寄存器CS=2400H,指令指示器IP=6F30H,此时指令的物理地址PA 是多少?指向这一物理地址的CS值和IP值是否是唯一的?9、什么叫总线周期?8086/8088系统中的总线周期由几个时钟周期组成?如果CPU的主时钟频率为25MHz,一个时钟周期是多少?一个基本总线周期是多少时间?第三章作业3-3 若80386的控制寄存器CR0中PG、PE全为1,则CPU当前所处的工作方式如何?3-5 有一个段描述符,放在局部描述符表的第12项中,该描述符的请求特权级为2,求该描述符的选择子内容。
3-6 某一个段描述符的选择子内容为0531H,请解释该选择子的含义。
3-7在段页式管理中,若允许分页,则页的大小为多少?如果一个页面首地址为86B05000H,则上一页和下一页的页面首地址各为多少?第四章作业4-3 设有关寄存器及存储单元的内容如下:(DS)=2000H,(BX)=0100H,(SI)=0010H,(21200H)=78H,(21201H)=56H,(20100H)=68H,(21110H)=ABH,(20110H)=F4H,(20111H)=CDH,(21120H)=67H 试问下列各指令执行完后,AL或AX寄存器的内容各是什么?各指令寻址方式是什么?(1) MOV AX,1200H(2) MOV AL,BL(3) MOV AX,[1200H](4) MOV AL,[BX](5) MOV AL,1010H[BX](6) MOV AX,[BX][SI](7) MOV AL,1010H[BX][SI]4-4 判断下列指令的正误,若是错误的,请说明原因。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《微型计算机原理及应用》作业
作业组别:第30组
班级:12级轧钢二班
姓名:贾闯
学号:120101020023
指导教师:李艳文
完成时间:2015年 05 月
30.1
一、题目及题目分析描述及要求
题目:内存中SOURCE处存放着10个字节型数据,请记录每个字节数据中二进制位1的个数,并按照数据字节在前,1的个数在后的顺序将处理结果存放到RESULT处。
分析:逐一取出内存中的10个数据,对每个字节型数据进行左移或右移八次,由带进位加法指令adc对一的个数进行求和,最后把所求和放入变量RESULT中。
预期结果:SOURCE = FEH,90H,FFH,DDH,42H,30H,81H,F3H,18H,25H
RESULT = FEH,07H,90H,02H,FFH,08H,DDH,06H,42H,02H,30H,02H,81H,02H,F3H,
06H,18H,02H,25H,03H
二、寄存器及主存等的应用说明
本题原始数据存放在内存SOURCE中,执行结果存放在内存RESULT中。
由si和di分别取得它们的偏移地址,dl存放由SOURCE所取的字节型数据,al用来存放每个字节型数据中二进制位1的个数。
三、程序框图
四、详细程序
.MODEL SMALL
.STACK
.DATA
SOURCE DB 0FEH,90H,0FFH,0DDH,42H,30H,81H,0F3H,18H,25H
COUNT EQU $-SOURCE ;取得source中字节个数RESULT DB 2*COUNT DUP (?)
.CODE
.STARTUP
mov di,offset source ;取得source处的偏移地址 mov si,offset result ;取得result处的偏移地址 mov ch,0
mov cl,count ;循环次数
again: mov dl,[di] ;逐一取出source中的数据 call htoasc ;调用子程序
inc di ;地址加1
loop again
.exit
htoasc proc ;子程序
mov al,0
mov [si],dl ;存放dl到result
next: shr dl,1 ;右移
adc al,0 ;带进位加法,确定1的个数 cmp dl,0 ;dl为零停止循环
jnz next
mov [si+1],al ;存放1的个数到result
inc si ;地址加2
inc si
ret ;返回主程序
htoasc endp
end
五、程序调试的情况、程序运行的结果的分析
刚开始调试时,总感觉寄存器不够用,经过翻阅课本,发现si,di也可以用来取偏移地址。
程序执行结果如下:
另外后来又学习到通过堆栈保护寄存器可以避免寄存器不够用的尴尬,以后可以用堆栈对其加以保护。
30.2
一、题目及题目分析描述及要求
题目:内存SOURCE中存放着10个0至9之间的数字的ascii码或者空白符的ascii 码,要求将0至9之间的数字的ascii码转换为相应的八位二进制数,并将空白字符的ascii码转换为“$”字符的ascii码。
处理结果存放到result处。
分析:分别取出source中的数据或空白字符,与空白字符的ascii码进行比较,若相等则转换为“$”字符的ascii码,若不等则将其减去30h转换为相应的二进制数。
预期结果:SOURCE = 20H, 30H, 31H, 33H, 35H, 20H, 39H, 38H, 37H, 34H RESULT = 24H, 00H, 01H, 03H, 05H, 24H, 09H, 08H, 07H, 04H
二、寄存器及主存等的应用说明
本题原始数据存放在内存SOURCE中,执行结果存放在内存RESULT中。
由si和di分别取得它们的偏移地址,dl存放由SOURCE所取的字节型数据,al用来作为中间过渡量。
三、程序框图
四、详细程序
.MODEL SMALL
.STACK
.DATA
SOURCE DB 20H, 30H, 31H, 33H, 35H, 20H, 39H, 38H, 37H, 34H
COUNT EQU $-SOURCE ;取得source中字节数
RESULT DB COUNT DUP (?)
.CODE
.STARTUP
mov ch,0
mov cl,count ;设定循环次数
mov si,offset source ;取得source的偏移地址
mov di,offset result ;取得result的偏移地址
again: mov dl,[si] ;逐一取出source中的数据
cmp dl,20h ;如果取出的数据为20h则跳转到next1 jz next1 否则减去30h
sub dl,30h
mov al,dl
jmp next2
next1: mov al,24h
next2:
mov [di],al ;存放al数值到result处
inc si ;si地址加1
inc di ;di地址加1
loop again
.EXIT
END
五、程序调试的情况、程序运行的结果的分析:
程序调试情况如下:
达到了预期的结果:
本题与第一题有相似之处,故完成起来比较简单。
本题仍可加以改进,对其进行堆栈保护,这样可以避免寄存器不够用甚至寄存器串用的问题。
30.3
一、题目及题目分析描述及要求
题目:内存中numa与numb处各存放着10个字节型无符号整数,请将它们按元素对应的逐个进行比较。
如果numa中的元素大于numb中的相应的元素的数目多于numb中的元素大于numa中的相应的元素的数目,则显示numa>numb,否则请显示numa<numb或numa=numb
分析:逐一比较numa与numb中相应的的数据,最后统计numa>numb或numa<numb的次数,最后进行比较并进行相应的输出。
预期结果:信息框输出执行结果
二、寄存器及主存等的应用说明
本题原始数据存放在内存numa、numb中。
由si和di分别取得它们的偏移地址,然后逐一比较numa
三、程序框图
四、详细程序
.MODEL SMALL
.STACK
.DATA
NUMA DB 10H, 11H, 12H, 13H, 00H, 95H, 86H, 97H, 08H, 89H
COUNT EQU $-NUMA ;取得numa中字节数
NUMB DB 90H, 81H, 66H, 3AH, 4CH, 37H, 64H, 1EH, 27H, 59H
STR1 DB 'NUMA>NUMB$'
STR2 DB 'NUMA<NUMB$'
STR3 DB 'NUMA=NUMB$'
.CODE
.STARTUP
mov si,offset numa ;取得numa偏移地址
mov di,offset numb ;取得numb偏移地址
mov ch,0
mov cl,count ;确定循环次数
mov bl,0 ;al,bl赋初值为0
mov al,0
again:mov dl,[di] ;dl作为中间寄存器以进行比较
cmp [si],dl ;比较numa与numb中相应数值大小 inc si ;si地址加1
inc di ;di地址加1
ja next1 ;numa>numb跳到next1进行累加
jb next2 ;numa<numb跳到next2进行累加
jmp next3
next1:add bl,1
jmp next3
next2:add al,1
next3:
loop again
cmp bl,al ;比较bl与al
ja label1
jb label2
mov dx,offset str3
jmp label3
label1:
mov dx,offset str1
jmp label3
label2:
mov dx,offset str2
jmp label3
label3:
mov ah,09h ;执行09号功能显示执行结果 int 21h
.EXIT
END
10
五、程序调试的情况、程序运行的结果的分析:
程序运行情况如下:
执行结果如下:
该题主要是对numa 与numb 中的数据进行比较,最后执行09号功能进行显示。