微机原理习题-第3章
微机原理与接口技术 张颖超 叶彦斐 第3章 习题答案

MULCL
MOVCX, AX
MOVAL, CL
MOVAH, 0
MULCX
13.假设DX:AX中存放一个双字的数据:
NEG DX
NEG AX
SBB DX,0
请问:
(1)上述程序段完成什么功能?
(2)设执行前,DX=0001H,AX=FFFFH,上述程序段执行后,DX、AX的值是什么?
(1)清累加器AX;
(2)清进位标志位
(3)将累加器内容乘以2(不考虑溢出)
(4)将累加器内容除以2(不考虑余数)
答:
(1) a.XORAX, AX
b.SUBAX, AX
c.ANDAX,0
d.MOVAX,0
(2) a.SUBAX, AX
b.ANDAX, AX
c.ORAX, AX
d.XORAX, AX
(7)检查BX中的第2、6、10和12位是否同时为0。
答:
(1) ANDDL, 0FCH;1111 1100B
(2)ORSI, 0E000H;1110 0000 0000 0000B
(3)ANDAX, 0FFF0H;1111 1111 1111 0000B
ORAX, 0380H; 0000 0011 1000 0000B
(1) IN AL, PORT; AL=
(2) IN AL, 40H;AX=
(3) OUTDX,AL; (DX)=
(4) OUT DX, AX; (DX)=
答:
(1)AL=22H
(2) IN AX, 40H; AX=226EH
(3) OUTDX,AL; (DX)=6EH
(4) OUT DX, AX; (DX)=226EH
微机原理第三章课后习题解答

3.1已知DS=091DH,SS=1E4AH,AX=1234H,BX=0024H,CX=5678H,BP=0024H,SI=0012H,DI=0032H,(09226H)=00F6H,(09228H)=1E40H ,(1E4F6H)=091DH。
在以上给出的环境下,试问下列指令段之行后的结果如何?(1)MOV CL,[BX+20H][SI];物理地址=DS*10H+BX+SI+20H=091D0H+0024H+0012H+0020H=09226H(09226H)=00F6H,(09226H)=F6H, (09227H)=00H执行后:CL=F6H(2)MOV [BP][DI], CX物理地址=SS*10H+BP+DI=1E4A0H +0024H+0032H=1E4F6HCX=5678H 执行后:(1E4F6H) = 5678H(3)LEA BX, [BX+20H][SI];BX=BX+20H+SI=0056HMOV AX, [BX+2];物理地址=DS*10H+BX+2=091D0H +0058H=09228H (09228H)=1E40H 执行后:AX=1E40H(4)LDS SI, [BX][DI];物理地址=DS*10H+BX+DI=091D0H +0056H=09226H (09226H)=00F6H (09228H)=1E40H执行后:BX=(09226H)=00F6HDS=(09228H)=1E40HMOV [SI],BX物理地址=DS*10H+SI =1E400H +0012H=1E412HBX=0024H, 执行后:(1E412H)=0024H (5)XCHG CX,[BX+32H]物理地址=DS*10H+BX+32H =091D0H +0056H =09226H (09226H)=00F6H , CX=5678H执行后:(09226H)=5678H , CX=00F6HXCHG [BX+20H][SI], AX物理地址=DS*10H+BX+20H+SI =091D0H +0056H =09226H (09226H)=5678H , AX=1234H执行后:(09226H)=1234H , CX=5678H3.2设DS=1000H,SS=2000H,AX=1A2BH,BX=1200H,CX=339AH,BP=1200H,SP=1350H,SI=1354H,(11350H)=0A5H,(11351H)=3CH,(11352H)=0FFH,(11353H)=26H,(11354H)=52H,(11355H)=0E7H,(126A4H)=9DH,(126A5H)=16H,(21350H)=88H,(21351H)=51H。
微机原理第三章习题答案

习题3答案1. 指出下列指令的错误原因。
(1) AND AX, DL ;类型不匹配(2) ADD CS, DX ;CS不能作为目的操作数(3) MOV AX, IP ;IP不能作为指令的操作数(4) MOV [BP][SI], [SI] ;两个操作数不能同时为内存操作数(5) SUB [BP][SI], ES:DX ;段超越前缀只能用在内存操作数之前(6) XCHG AL, [SI][DI] ;没有[SI][DI]这种操作数形式(7) JGE AX ;条件转移指令的操作数只能是标号(8) PUSH DL ;对堆栈不能进行字节操作2. 用一条指令将BX清0。
(请给出3种方法)方法1:MOV BX, 0方法2:SUB BX, BX方法3:AND BX, 0 ;将BX和0做与,可以将BX清零方法4:XOR BX, BX3. 写出实现下列功能的指令序列。
(1) 判断AX的值,若AX等于0,则转到标号LABEL处。
(请写出3种方法)方法1:CMP AX, 0JZ LABEL ; 如果ZF = 0,说明AX为0,因为CMP指令是做减法,但是不写回结果; 因此指令执行后AX内容不会受到破坏方法2:TEST AX, 0FFHJZ LABEL ; 如果ZF = 0,说明AX为0,TEST指令做与运算,可是不写回结果,只影响标志位。
; 和0与清零,和1与不变,所以和FFH做与的结果是AX本身,但是此时标志位已; 经改变了,所以可以利用标志位来判断,但是AX内容却没有受到任何破坏方法3:AND AX, 0FFH ;这个方法的原理和方法2其实是完全一致的JZ LABEL(2) 将AL的高4位与低4位分别放入AH与AL的低4位,并将AH与AL的高4位清0。
MOV AH, ALAND AL, 0FH ; AL高4位通过与清零,而低4位保持不变MOV CL, 4SHR AH, CL ; 这两条指令通过逻辑右移将AH的高4位清零,因为SHR在右移后,高位补零(3) 若AX和BX中的数恰好1个是奇数、1个是偶数,则将奇数放入AX,偶数放入BX;否则,AX和BX不变。
微机原理与接口技术习题答案

第3章8086/8088指令系统与寻址方式习题3.3 8086系统中,设DS=1000H,ES=2000H,SS=1200H,BX=0300H,SI=0200H,BP=0100H,VAR的偏移量为0600H,请指出下列指令的目标操作数的寻址方式,若目标操作数为存储器操作数,计算它们的物理地址。
(1)MOV BX,12 ;目标操作数为寄存器寻址(2)MOV [BX],12 ;目标操作数为寄存器间址 PA=10300H(3)MOV ES:[SI],AX ;目标操作数为寄存器间址 PA=20200H(4)MOV VAR,8 ;目标操作数为存储器直接寻址 PA=10600H(5)MOV [BX][SI],AX ;目标操作数为基址加变址寻址 PA=10500H(6)MOV 6[BP][SI],AL ;目标操作数为相对的基址加变址寻址 PA=12306H (7)MOV [1000H],DX ;目标操作数为存储器直接寻址 PA=11000H(8)MOV 6[BX],CX ;目标操作数为寄存器相对寻址 PA=10306H(9)MOV VAR+5,AX ;目标操作数为存储器直接寻址 PA=10605H3.4 下面这些指令中哪些是正确的?那些是错误的?如果是错误的,请说明原因。
(1)XCHG CS,AX ;错,CS不能参与交换(2)MOV [BX],[1000] ;错,存储器之不能交换(3)XCHG BX,IP ;错,IP不能参与交换(4)PUSH CS(5)POP CS ;错,不能将数据弹到CS中(6)IN BX,DX ;输入/输出只能通过AL/AX(7)MOV BYTE[BX],1000 ;1000大于255,不能装入字节单元(8)MOV CS,[1000] ;CS不能作为目标寄存器(9)MOV BX,OFFSET VAR[SI] ;OFFSET只能取变量的偏移地址(10)MOV AX,[SI][DI] ;SI、DI不能成为基址加变址(11)MOV COUNT[BX][SI],ES:AX ;AX是寄存器,不能加段前缀3.7 设当前 SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶的地址为多少?当执行PUSH BX 指令后,栈顶地址和栈顶2个字节的内容分别是什么?当前栈顶的地址=2FF00H当执行PUSH BX 指令后,栈顶地址=2FEFEH(2FEFEH)=57H(2FEFFH)=34H3.8 设DX=78C5H,CL=5,CF=1,确定下列各条指令执行后,DX和CF中的值。
微机原理与接口技术习题答案3

第3章8086CPU指令系统1.写出完成下列要求的变量定义语句:(1)在变量var1中保存6个字变量:4512H,4512,-1,100/3,10H,65530;(2)在变量var2中保存字符串:’BYTE’,’word’,’WOR’D;(3)在缓冲区buf1中留出100个字节的存储空间;(4)在缓冲区buf2中,保存5个字节的55H,再保存10个字节的240,并将这一过程重复7次;(5)在变量var3中保存缓冲区buf1的长度;(6)在变量pointer中保存变量var1和缓冲区buf1的偏移地址。
解:var1DW4512H,4512,-1,100/3,10H,65530var2DB’BYTE’,’word’,’WORD’buf1DB100DUP(?)buf2DB7DUP(5DUP(55H),10DUP(240))var3DBLENGTHbuf1pointerDWvar1,buf1(或者pointerDWOFFSETvar1,OFFSETbuf1)2.设变量var1的逻辑地址为0100:0000,画出下列语句定义的变量的存储分配图:var1DB12,-12,20/6,4DUP(0,55H)var2DB‘Assemble’var3DW‘AB’,‘cd’,‘E’var4DWvar2var5DDvar2解:3.指令正误判断,对正确指令写出源和目的操作数的寻址方式,对错误指令指出原因(设VAR1,VAR2为字变量,L1为标号):(1)MOVSI,100(2)MOVBX,VAR1[SI](3)MOVAX,[BX](4)MOVAL,[DX](5)MOVBP,AL(6)MOVVAR1,VAR2(7)MOVCS,AX(8)MOVDS,0100H(9)MOV[BX][SI],1(10)MOVAX,VAR1+VAR2(11)ADDAX,LENGTHVAR1(12)ORBL,TYPEVAR2(13)SUB[DI],78H(14)MOVSVAR1,VAR2(15)PUSH100H(16)POPCS(17)XCHGAX,ES(18)MOVDS,CS(19)JMPL1+5(20)DIVAX,10(21)SHLBL,2(22)MOVAL,15+23(23)MULCX(24)XCHGCL,[SI](25)ADCCS:[0100],AH(26)SBBVAR1-5,154解:(1)MOVSI,100正确。
(完整版)微机原理第三章(1)及答案

第三章习题集二.选择题(每小题1分,共15分)1. 逻辑地址1000:2000对应的物理地址为( B )。
A、1200HB、12000HC、2100HD、21000H2. 下面哪个寄存器使用时的默认段寄存器为SS( C )。
A、AXB、BXC、SPD、SI3. 当使用BP寄存器作基址寻址时,若无指定段替换,则内定在( B )段内寻址。
A.程序B.堆栈C.数据D.附加4.在下面四组寄存器中,第 D 组都可用于对存储器间接寻址方式的寄存器。
A. AX,BX,CX,IP;B. BX,SP,DX,SIC. IP,SP,BP,AXD. BP,BX,SI,DI5. 含有立即数的指令中,该立即数被存放在 A 。
A. 累加器中B. 指令操作码后的内存单元中C. 指令操作码前的内存单元中D. 由该立即数所指定的内存单元中6. 用段基值及偏移量来指明内存单元地址的方式称为( C )。
A、有效地址B、物理地址C、逻辑地址D、相对地址7. 已知物理地址为0FFFF0H,且段内偏移量为0B800H,若对应的段基地址放在DS中,则DS=( B )。
A、0FFFFHB、0F47FHC、2032HD、0F000H8. 含有立即数的指令中,该立即数被存放在 B 。
A. 累加器中B. 指令操作码后的内存单元中C. 指令操作码前的内存单元中D. 由该立即数所指定的内存单元中9.寄存器间接寻址方式中,操作数在 C 中。
A. 通用寄存器B. 堆栈C. 存储单元D. 段寄存器10.下列指令中,有语法错误的指令是(B D)。
A. MOV AX,[1000H]B. LEA AL,1000HC. MOV [1000H],ALD. MOV 1000H,AX11. 下列指令语法有错的是:CA. MOV AX,1000HB. MOV AX,BXC. MOV [AX],[1000H]D. MOV AX,[1000H]12. 8086/8088中除___C___两种寻址方式外,其它各种寻址方式的操作数均在存储器中。
东华理工 微机原理第三章习题答案

3.1给定(BX)=637DH,(SI)=2A9BH,位移量D=7237H,试确定在以下各种寻址方式下的有效地址是什么?(1) 立即寻址(2) 直接寻址(3) 使用BX的寄存器寻址(4) 使用BX的简接寻址(5) 使用BX的寄存器相对寻址(6) 基址变址寻址(7) 相对基址变址寻址答:(1) 操作数在指令中,即立即数;(2) EA=D=7237H;(3) 无EA,操作数为(BX)=637DH;(4) EA=(BX)=637DH;(5) EA=(BX)+D=0D5B4H;(6) EA=(BX)+(SI)=8E18H;(7) EA=(BX)+(SI)+D=1004FH;超过了段的边界,最高进位位丢失,因此EA=004FH。
3.2试根据以下要求写出相应的汇编语言指令(1) 把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器中。
(2) 用寄存器BX和SI的基址变址寻址方式把存储器中的一个字节与AL寄存器的内容相加,并把结果送到AL寄存器中。
(3) 用寄存器BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和(CX)相加,并把结果送回存储器中。
(4) 用位移量为0524H的直接寻址方式把存储器中的一个字与数2A59H相加,并把结果送回存储单元中。
(5) 把数0B5H与(AL)相加,并把结果送回AL中。
答:(1) ADD DX, BX(2) ADD AL, [BX][SI](3) ADD [BX+0B2H], CX(4) ADD WORD PTR [0524H], 2A59H(5) ADD AL, 0B5H3.3写出把首地址为BLOCK的字数组的第6个字送到DX寄存器的指令。
要求使用以下几种寻址方式:(1) 寄存器间接寻址(2) 寄存器相对寻址(3) 基址变址寻址答:(1) MOV BX, OFFSET BLOCK ADD BX, (6–1)*2MOV DX, [BX](2) MOV BX, OFFSET BLOCKMOV DX, [BX+(6–1)*2]BLOCK[BX](3) MOV BX, OFFSET BLOCKMOV SI, (6–1)*2MOV DX, [BX][SI]3.4现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,试说明下列各条指令执行完后AX寄存器的内容。
微机原理第3章习题答案

微机原理第3章习题答案第3章习题参考答案1 分别指出下列指令中的源操作数和⽬的操作数的寻址⽅式。
答:源操作数⽬的操作数(1)MOV AX,[SI] 寄存器寻址寄存器间接寻址(2)MOV DI,100 寄存器寻址⽴即寻址(3)MOV [BX],AL 寄存器间接寄存器(4)MOV [BX][SI],CX 基址+变址寄存器(5)ADD DX,106H[SI] 寄存器变址(6)PUSH AX 寄存器(7)ADD DS:[BP],AX 带段超越寄存器间接寻址寄存器(8)OR AX,DX 寄存器寄存器2.设寄存器(DS)=2000H,(SS)=1500H,(ES)=3200H,(SI)=0A0H,(BX)=100H,(BP)=10H,数据段中变量VAL的偏移地址为50H。
试指出下列各条指令中源操作数的寻址⽅式是什么?对于存储器操作数,其物理地址是多少?答:操作数的寻址⽅式存储器操作数PA (1)MOV AX,[100H] 直接寻址20100H(2)MOV CX,ES:[BX] 带段超越的寄存器间接寻址32100H(3)MOV DX,[BX][SI] 基址+变址寻址200F0H(4)MOV AX,V AL[SI] 变址寻址200F0H(5)MOV BX,1234[BX] 基址寻址205D2H(6)MOV AX,[BP] 寄存器间接寻址15010H3. 判断下列指令有误错误,若有,则改之。
答:(1)PUSH CL 有错,对堆栈操作数总是16位的。
改为:PHSH CX (2)ADCAX,0ABH ⽆,只是CF的值是不确定的(0或1)(3)OUT 3EBH, AX 有,输出设备的端⼝地址若超过8位,应使⽤DX 间接寻址。
改为:MOV DX, 3EBHOUT DX,AX(4)MUL AL, CL 有错。
乘法指令中有AX或AL寄存器是隐含的。
改为:MUL CL(5)MUL AX, 25 有错。
乘法指令中不能⽤⽴即数。
改为:MOV BX,25MUL BX(6)ROL DX,5 有错。
微机原理第三章练习题及解答

微机原理第三章练习题及解一:单项选择题●指令MOV AX,[BX] 中,源操作数的缺省段是( A )。
A:DS B:ES C:SS D:CS●指令PUSH [BX] 中,目的操作数的段寄存器是( C )。
A:DS B:ES C:SS D:CS●指令MOVSB 中,目的块的段寄存器是( B )。
A:DS B:ES C:SS D:CS●下列指令中,不正确的指令是( D )。
A:MOV AX,BX B:MOV AX,[BX]C:MOV AX,CX D:MOV AX,[CX]●下列指令中, 不正确的指令是( D )。
A:MOV AL,BL B:MOV AL,[BX]C:MOV AL,CL D:MOV AL,[BL]●下列指令中,不正确的指令是( D )。
A:MOV [BX+SI],AX B:MOV AX,[BX + SI]C:MOV AX,SI D:MOV AX,[BX + CX]●若要使寄存器AL中的高4 位不变,低4 位0,使用指令( B )。
A:AND AL,0FH B:AND AL,0F0HC:OR AL,0FH D:OR AL,0F0H●若要使寄存器AL中的高4 位不变,低4 位1,使用指令( C )。
A:AND AL,0FH B:AND AL,0F0HC:OR AL,0FH D:OR AL,0F0H●若要使寄存器AL中的高4 位为0,低4 位不变,使用指令( A )。
A:AND AL,0FH B:AND AL,0F0HC:OR AL,0FH D:OR AL,0F0H●若要使寄存器AL中的高4 位为1,低4 位不变,使用指令( D )。
A:AND AL,0FH B:AND AL,0F0HC:OR AL,0FH D:OR AL,0F0H●条件转移指令JNZ的转移条件是( B )。
A:CF = 0 B:ZF = 0 C:CF = 1 D:ZF = 1●条件转移指令JZ的转移条件是( D )。
A:CF = 0 B:ZF = 0 C:CF = 1 D:ZF = 1●8086CPU响应可屏蔽中断的条件是( B )。
微机原理第3章习题(答案)

微机原理第3章习题(答案)1.下列各条指令是否有错?如果有,请指出错误之处并改正(1)MOVDS 1000H(2)MOV[100],23H(3)ADDAX [BX + BP+ 6](4)PUSHDL(5)INAX, [3FH](6)0UT3FFH AL(7)LESSS [SI](8)POP[AX](9)IMUL4CH(10)SHLBX 5(11)INT300(12)XCHGD, 0FFFH答:(1)错误。
不允许直接向段寄存器送立即数,可改为:MOVAX 1000HMOVD, AX(2)错误。
该指令在语法上是对的,即可以把一个立即数送入一个存储单元;但是如果考虑实际编译,则第一操作数前应加上BYTEPT或WORDPT说明,否则汇编程序会因不能确定操作数长度而指示出错。
可改为:MOVBYTEPTR[1O0] 23H(3)错误。
不能同时使用两个基址寄存器BX、BP进行间接寻址,可改为:ADDAX [BX + DI + 6](4)错误。
堆栈操作应以字为单位进行,而DL是一个字节。
可改为:PUSHDX(5)错误。
在输入/输出指令中,8位端口地址应直接写在操作数处。
可改为:INAX, 3FH(6)错误。
端口地址3FFH已超出8位二进制表示范围,16位端口地址应用DX可改为:MOVD, 3FFHOUTDXAL(7)错误。
LES指令的目操作数应该是通用寄存器,不能是段寄存器。
可改为:LESBX [SI](8)错误。
AX不能用于间接寻址,间接寻址只能用BXBP、SI、DI四个寄存器之一。
可改为:POP[BX](9)错误。
立即数不能做乘法指令的操作数,可改为:MOVBJL 4CHIMULBL(10)错误。
当逻辑移位的次数大于1时,应该用CL指示次数。
可改为MOVCL 5SHLBX CL(11)错误。
操作数300>255,已超出有效的中断类型码范围。
(12)错误。
XCHG指令不允许立即数做它的操作数。
可改为:MOVC, 0FFFHXCHGDXCX2•请指出以下各指令的源、目的操作数所使用的寻址方式(1)MOVSI 2100H(2)SBBDISP[BX], 7(3)AND[DI] , AX(4)ORAX [609EH](5)MOV[BXb DI + 30H], CX(6)PUSHES [BP](7)CALL[DI]DISP(8)JNZShort_label答:(1)源操作数:立即数寻址;目的操作数:寄存器寻址(2)源操作数:立即数寻址;目的操作数:基址寻址(3)源操作数:寄存器寻址;目的操作数:寄存器间接寻址(4)源操作数:直接寻址;目的操作数:寄存器寻址5)源操作数:寄存器寻址;目的操作数:(带位移量的)基址变址寻址(6)源操作数:带段超越的寄存器间接寻址;目的操作数:隐含寻址(7)只有一个操作数,为变址寻址(8)只有一个操作数,为相对寻址3. 已知DS=2000H 有关的内存单元值为:(21000H)=00H,(21001H)=12H,(21200H)=00H,(21201H)=10H,(23200H)=20H,(23201H)=30H,(23400H)=40H,(23401H)=30H,(23600H)=60H,(23601H)=30H,符号COUNT 勺偏移地址为1200H。
第三章微机原理习题课

.第三章习题课一、选择题1、在汇编语言程序的开发过程中使用宏功能的顺序是()。
A、宏定义,宏调用B、宏定义,宏展开C、宏定义,宏调用,宏展开D、宏定义,宏展开,宏调用2、汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是()。
A、名字项B、操作项C、操作数项D、注释项3、下列叙述正确的是()A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMPS指令B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CMP指令C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/JNL指令D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/JNB指令4、编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有().A、CMPB、SUBC、ANDD、MOV5、测试BL寄存器容是否与数据4FH相等,若相等则转NEXT处执行,可实现的方法是()。
A TEST BL,4FHJZ NEXTB XOR BL,4FHJZ NEXTC AND BL,4FHJZ NEXTD OR BL,4FHJZ NEXT6、检查BUF的容是否为正偶数,如是正偶数,则令AL=0。
下面程序段正确的是( )。
A、MOV AL,BUF JS K1SHR AL,1JNC K1MOV AL,0K1:……B、MOV AL,BUF AND AL,11 JNZ K2MOV AL,0K2:……C 、MOV AL ,BUF TEST AL ,81H JNZ K3 MOV AL ,0 K3:……7、下列描述中,执行循环的次数最多的情况是()。
A .MOV CX ,0B .MOV CX ,1 LOP :LOOP LOP LOP :LOOP LOPC .MOV CX ,0FFFFHD .MOV CX ,256 LOP :LOOP LOP LOP :LOOP LOP8、在下列指令中,指令的执行会影响条件码中的CF 位。
微机原理第3章习题与答案

习题一、选择题1.寻址方式指出了操作数的位置,一般来说_______。
A.立即寻址给出了操作数的地址B.寄存器直接寻址的操作数在寄存器内,而指令给出了存储器C.直接寻址直接给出了操作数本身D.寄存器直接寻址的操作数包含在寄存器内,由指令指定寄存器的名称答案:D2.寄存器寻址方式中,操作数在_________。
A.通用寄存器B.堆栈C.内存单元D.段寄存器答案:A3.寄存器间接寻址方式中,操作数在_________。
A.通用寄存器B.堆栈C.内存单元D.段寄存器答案:C4.下列指令中的非法指令是______。
A. MOV [SI+BX], AXB.MOV CL, 280C.MOV [0260H], 2346HD.MOV BX, [BX]答案:B5.设(SP)=0100H,(SS)=2000H,执行PUSH BP指令后,栈顶的物理地址是_____。
A.200FEHB.0102HC. 20102HD.00FEH答案:A6.指令LEA BX, TAB执行后,其结果是______。
A.将TAB中内容送BXB.将TAB的段基址送BXC.将TAB的偏移地址送BXD.将TAB所指单元的存储内容送BX答案:C7.下列正确的指令格式有______。
A.MOV [BX], 1B.MOV AL, 0345HC.MOV ES: PTR[CX], 3D. XLAT答案:D8.设(AX)=C544H,在执行指令ADD AH,AL之后,______。
A.CF=0,OF=0B.CF=0,OF=1C.CF=1,OF=0 D,CF=1,OF=1答案:C9.若AL、BL中是压缩BCD数,且在执行ADD AL, BL之后,(AL)=0CH,CF=1,AF=0。
再执行DAA后,(AL)=_____。
A.02HB.12HC.62HD.72H答案:B10.执行下列程序后AL的内容为_____。
MOV AL, 25HSUB AL, 71HDASA.B4HB.43HC.54HD.67H答案:C11.下列四条指令中,需要使用DX寄存器的指令是______。
微机原理重点考试习题Chapter 3

第3章 80x86微处理器一、自测练习题㈠选择题1.因为8086 CPU的字数据既可以存放在内存的偶地址单元,也可以安排在奇地址单元,所以其堆栈指针SP( )。
A.最好指向偶地址单元 B.可以指向任何地址单元C.只能指向偶地址D.只能指向奇地址2.8086/8088微处理器内部能够计算出访问内存储器的20位物理地址的附加机构是( )。
A.ALU B.加法器C.指令队列 D.内部通用寄存器3.8086CPU外部的数据总线和地址总线分别为( )位。
A.16,16 B.20,16 C.16,20 D.20,20 4.指令代码的地址存放在寄存器( )中。
A.DS和SI B.BX和BP C.ES和DI D.CS和IP5.最大方式中,控制总线的信号来自( )。
A.8282 B.8284 C.8288 D.82866.在8086中,一个基本的总线周期由( )个时钟周期组成。
A.1 B.2 C.3 D.47.在8086CPU中,数据地址引脚( )采用时分复用。
A.AD0~AD15 B.AD0~AD9 C.AD0~AD20 D.AD10~AD28.8086CPU把1MB空间划分为若干逻辑段,每段最多可含( )的存储单元。
A.1KB B.8KB C.16KB D.64KB9.当标志寄存器FLAGS中OF位等于1时,表示带有符号的字运算超出数据( )范围。
A.-128~+127 B.-32768~+32767C.000~FFFFH D.0~FFH10.总线写周期中,在( )时不需要像读周期时要维持一个周期的浮空状态以作缓冲。
A.-32767~+32767 B.-32767~+32768C.-32768~+32767 D.-32766~+3276911.CPU执行指令过程中,BIU每完成一次对存储器或I/O端口的访问过程,称为( )。
A.时钟周期 B.总线周期 C.总线读周期 D.总线写周期12.BHE与A0配合以决定访问存储器的数据是高字节还是低字节工作,其BHE仅在总线周期开始的( )周期有效。
微机原理习题参考答案

第1章计算机基础知识1.2 课后练习题一、填空题1. 2.110001113.十,非压缩的BCD码 4.100100.111(100100.111B)5.微型计算机,微型计算机系统 6.二、选择题1.B 2.D 3. B三、简答题1.以微型计算机为主体,配上相应的系统软件、应用软件和外部设备之后,组成微型计算机系统。
(微型计算机+软件系统,也可)2.冯.诺依曼型计算机是由运算器,控制器,存储器,输入设备和输出设备组成的。
其中,运算器是对信息进行加工和运算的部件;控制器是整个计算机的控制中心,所以数值计算和信息的输入,输出都有是在控制器的统一指挥下进行的;存储器是用来存放数据和程序的部件,它由许多存储单元组成,每一个存储单元可以存放一个字节;输入设备是把人们编写好的程序和数据送入到计算机内部;输出设备是把运算结果告知用户。
(写出主要内容,即可)3.微型计算机由CPU、存储器、输入/输出接口电路和系统总线构成。
(只要答出五大组成部分即可)4.溢出就是在运算中,使用已经确定的二进制位数,没有办法表示运算结果。
第2章 8086/8088微处理器2.2 课后练习题一、填空题1. 4,100ns2. Ready ,Tw(等待)3. ALE4. INTR5. 85010H6. 存储器或I/O接口未准备好7. 非屏蔽中断8. 指令周期9. 4二、简答题1. 1) 算术逻辑部件 2) 累加器和通用寄存器组3) 程序计数器 4) 时序和控制部件(意思相近即可)2. 1)可以进行算术和逻辑运算 2)可保存少量数据3)能对指令进行译码并完成规定的操作 4)能和存储器、外部设备交换数据5)提供整个系统所需的定时和控制 6)可以响应其他部件发来的中断请求3. CPU使用总线完成一次存储器或I/O接口的存取所用的时间,称为总线周期,一个基本的总线周期包含4个T状态,分别称为T1、T2、T3、T4。
(意思相近即可)?三、判断题1. ×2. ×3. ×4.5. × 6.√ 7. √第3章指令系统3.2 课后练习题一、简答题1. L52. RET应该可以使中断服务程序返回主程序,但因为RETF是子程序返回指令,它只从堆栈中恢复CS和IP,而不能使状态字PSW得以恢复,所以不能使断点完全恢复,对源程序的继续执行造成不良影响。
微机原理第三章习题与参考答案

第三章习题与参考答案3.1 已知 (DS) = 1000H,(ES) = 2000H,(SS) = 3000H,(SI) = 0050H,(BX) =0100H,(BP) =0200H,数据变量DISP的偏移地址为1000。
指出下列指令的寻址方式和物理地址。
(1) MOV AX,0ABH 立即寻址无(2) MOV AX,BX 寄存器寻址无(3) MOV AX,[l000H] 直接寻址 10000H(4) MOV AX,DATA 直接寻址 (DS*16+DATA )(5) MOV AX,[BX] 寄存器间接寻址 10100H(6) MOV AX,ES:[BX] 寄存器间接寻址 20100H(7) MOV AX,[BP] 寄存器间接寻址 30200H(8) MOV AX,[SI] 寄存器间接寻址 10050H(9) MOV Ax,[BX+l0] 寄存器相对寻址 1010AH(10) MOV AX,DISP[BX] 寄存器相对寻址 11100H(1l) MOV AX,[BX+SI] 基址变址寻址 10150H(12) MOV AX,DISP[BX][SI] 相对基址变址寻址 11150H3.2 分别说明下例指令采用的寻址方式和完成的操作功能。
(1) MOV CX,2000H 立即寻址将立即数2000H送CX寄存器(2) MOV DS,AX 寄存器寻址将AX寄存器内容送DS段寄存器(3) AND CH,[1000H] 直接寻址将[DS*16+1000H]单元的内容送CH寄存器(4) ADD [DI],BX 寄存器间接寻址将CL寄存器的内容送[DS*16+DI]单元(5) MOV SS:[3000H],CL 直接寻址将CL寄存器的内容送[SS*16+3000H]单元(6) SUB [BX][SI],1000H 直接寻址将立即数1000H送[DS*16+BX+SI+50H]单元(7) ADD AX,50H[BX][SI] 相对基址变址寻址将[DS*16+BX+SI+50H]单元的内容送AX寄存器(8) PUSH DS 寄存器寻址将DS寄存器的内容送[SS*16+SP]单元(9) CMP [BP][DI],AL 寄存器寻址将AL寄存器的内容送[SS*16+DI+BP]单元3.3 判断下列指令正误,如果错误请指出原因。
《微机原理及应用》各章习题参考答案

《微机原理及应用》各章习题参考答案第1章微型计算机概论一、填空题1. 微机硬件系统主要由CPU、(存储器)、(总线)、(输入输出接口)和输入输出设备组成。
2. 冯·诺依曼计算机的核心原理是(存储程序原理)3. 完成下列数制的转换1)10100110B=( 166 )D=( A6H )H2)223.25 =( 11011111.01 )B=( DF.4 )H3)1011011.101B=( 5B.A )H=(1001 0001.01100010 0101 )BCD4. 已知[X]补5. 已知A=10101111,B=01010000,则A∧B的结果为( 00000000 ) B=86H,则X的十进制表示形式为( -122 )6. -29H的8位二进制反码是(11010110 )B7.字符4的ASCII码=( 34 )H二、简答题1.冯.诺依曼计算机的结构是怎样的,主要特点有哪些?解:将计算机设计为由运算器、控制器、存储器、输入设备和输出设备等5个部分组成,所有的执行都以运算器为核心,采用存储程序工作原理。
2. 已知X=-1101001B,Y=-1010110B,用补码方法求X-Y=?解:[X-Y]补=[X+(-Y)]补= [X]补+[-Y] [X]补原=11101001B [X]补 [-Y]=10010111B原=01010110B=[-Y] [X-Y]补补= [X]补+[-Y]补X-Y=[[X-Y]=11101101B补]补=10010011=-0010011=-193. 写出下列真值对应的原码和补码的形式:1)X=-1110011B2)X=-713)X=+1001001B解:1)[X]原码=11110011B , [X]补码=10001101B2)[X]原码=11000111B, [X]补码=10111001B3)[X]原码=01001001, [X] 补码=01001001B=?4. 已知X和Y的真值,求[X+Y]补1)X=-1110111B Y=+1011010B2)X=56 Y=-215. 若与门的输入端A、B、C的状态分别为1、0、1,则该与门的输出端状态为?若将这3位信号连接到或门,那么或门的输出又是什么状态?解:由与和或的逻辑关系知,若“与”门的输入端有一位为“0”,则输出为“0”;若“或”门的输入端有一位为“1”,则输出为“1”。
大学微机原理第三章习题

大学微机原理第三章习题8086/8088的寻址方式和指令系统习题一.单项选择题1.设置BX=2000h,Si=3000h,指令movax的源操作的有效地址[BX+Si+8]为()。
a、5000hb.5008hc.23008hd.32022h2.设ds=1000h,es=2000h,bx=3000h,指令addal,[bx]的源操作数的物理址为()。
a.13000hb.23000hc.33000hd.3000h3.设ds=2000h,es=3000h,si=200h,指令moves:[si],al的目的操作数的物理地址为()。
a.20210hb.30200hc.50200hd.200h4.指令movmem[bx],ax中的mem是()。
a.原码b.反码c.补码d.移码5.用来作为寄存器间接寻址的寄存器有()个。
a.8b.6c.5d.46.指令mov[BX+Si],Al中的目标操作数使用()段寄存器。
a、 csb.dsc.ssd.es7.指令movbx,[bp+5]中的源操作数使用()段寄存器。
a.csb.dsc.ssd.es8.段内间接寻址只改变()中的内容。
a、 csb之间的间接寻址。
ipc。
政务司司长和知识产权署。
psw9。
仅更改()中的内容。
a.csb.ipc.cs和ipd.psw10.下述指令中不改变psw的指令是()。
a.movax,bxb.andal,0fhc.shrbx,cld.addal,bl11.下述指令中不影响cf的指令是()。
a.shlal,1b.inccxc、添加[bx],ald.subax,bx12.两个整数补码9ch和7ah相加运算后,会产生()。
a.无溢出且无进位b.无溢出但有进位c.有溢出且有进位d.有溢出但无进位13.指令jmpwordptr[bx]属于()寻址。
a、段内直接B.段内间接C.段间直接D.段间间接14。
指令movax的源操作数[BX+Si+8]属于()寻址。
微机原理第五版第三章习题答案.doc

]、2题略,看书!3. 51系列单片机有哪儿种寻址方式?对内部RAM的。
〜7FH操作有那些寻址方式?对SFR 有哪些寻址方式?答:51单片机共有:寄存器寻址,直接寻址,寄存器间接寻址,立即寻址,基址寄存器加变址寄存器间接寻址和相对寻址等6中寻址方式。
对内部RAM的0〜7FH操作可通过直接寻址,寄存器间接寻址对SFR只能通过直接寻址访问对内部RAM的80H〜OFFH的操作只能通过寄存器间接寻址。
(因为SFR的地址也在80H〜OFFH的范围内,故通过采用互不相同的寻址方式,来区分该段地址是指向内部RAM还是指向SFR)4.请写出下列功能对应的数据传送指令⑴MOV A,R0;MOV A,40H;MOVA,@RO;MOV A,#80H(2 )MOV R0,78H;MOV R6,A;MOV R7,#88H;⑶MOV 50H,A;MOVP1,70H;MOVP1,R3;MOVP1,#80H(4 )MOV @R0,A;MOV @R0,30H;MOV @R0, #30H(5)MOV DPTR,#8000H(6)PUSH ACC (不能写成PUSH A,必须用累加器的符号ACC,因为此处是直接寻址);PUSH DPH;POPDPH;POP ACC(7) XCH A,@R0;XCHD A,@R05.写出指令功能(1)((R1))—A; (50H)—A; (Rl)—A(2)(30H)->R7; (A)->R4; 3-R7(3)(A)->50H; (4OH)->P1; (R3)-P1(4)(A)->(Rl); (30H)->(Rl); 5OH->(R1)(5)9000H-DPTR(6)(ACC)-堆栈;(B)—堆栈;堆栈一DPL⑺ A - — ((R1)), (A)o~3 - - ((R1 ))o~3(8) ((P2)(R0))—A; ((A)+(PC)) — A; ((A)+(DPTR))—A; ((DPTR))->A;注意:MOVX指令访问的是外部RAM数据存储器单元;MOVC指令访问的是程序存储器中的地址单元。
16 32位微机原理第3章课后习题答案

16 32位微机原理第3章课后习题答案1632位微机原理第3章课后习题答案>第3章3.1:汇编语言就是一种以处理器指令系统为基础的低级程序设计语言,它使用助记符抒发指令操作码,使用标识符号则表示指令操作数,可以轻易、有效地掌控计算机硬件,因而难建立代码序列短小、运转快速的可执行程序3.2解:(1)完备的汇编语言源程序由段共同组成(2)一个汇编语言源程序可以包含若干个代码段、数据段、附加段或堆栈段,段与段之间的顺序可随意排列(3)须要单一制运转的程序必须涵盖一个代码段,并命令程序执行的初始点,一个程序只有一个初始点(4)所有的可执行性语句必须位于某一个代码段内,说明性语句可根据需要位于任一段内已经开始边线:用标号阐明返回dos:利用dos功能调用的4ch子功能来实现汇编停止:执行到一条end伪指令时,停止汇编3.5求解:段定位、段组合和段类型。
3.6得出使用一个源程序格式书写的例题3.1源程序例题3.1:创建一个在屏幕上显示一段信息的程序??解:stacksegmentstackdb1024(0)stackends41hdatasegmentstringdb'hello,assembly!',0dh,0ah,‘$’dataendscodesegment'code'assumecs:code,ds:data,ss:stackstart:movdx,offsetstringmovah,9int21hcodeendsendstart3.7dos支持哪两种可执行程序结构,编写这两种程序时需要注意什么?解:(1).exe程序只有一个逻辑段,程序长度不超过64kb3.8举例说明等价“euq”伪指令和等号“=”伪指令的用途求解:符号定义伪指令有“等价equ”和“等号=”:符号名equ数值表达式符号名equ符号名=数值表达式equ用作数值等价时无法重复定义符号名,但“=”容许存有重复赋值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.18086CPU有多少根数据线和地址线?它能寻址多少内存地址单元和I/O端口?8088又有多少根数据线和地址线?为什么要设计8088CPU?3.28086CPU内部按功能可分为哪两大部分?它们各自的主要功能是什么?8086与8088CPU中的指令队列缓冲器有何区别?在微处理器中设置指令队列缓冲器有什么作用?3.38086CPU内部的总线接口单元(BIU)由哪些功能部件组成?它们的基本操作原理是什么?3.4什么叫微处理器的并行操作方式?为什么说8086CPU具有并行操作的功能?在什么情况下8086的执行单元(EU)才需要等待总线接口单元(BIU)提取指令?3.5逻辑地址和物理地址有何区别?为什么8086微处理器要引入“段加偏移”的技术思想?“段加偏移”的基本含义是什么?试举例说明。
3.6段地址和段起始地址相同吗?两者是什么关系?8086的段起始地址就是段基址吗?它是怎样获得的?3.7在8086微计算机中,若段寄存器中装入如下数值,试写出每个段的起始地址和结束地址。
(假设段的最大长度为64K)(1)1000H (2)1234H (3)E000H (4)AB00H3.8已知8088微处理器组成的系统中,对于下列CS:IP组合,计算出要执行的下条指令的存储器地址。
(1)CS=1000H和IP=2000H (2)CS=2400H和IP=1A00H(3)CS=1A00H和IP=B000H (4)CS=3456H和IP=ABCDH3.9已知计算机中两个16位数算术运算的结果为0E91BH,求PF = ?,SF = ?,ZF = ?3.10一个基本的总线周期由几个状态组成?微处理器在什么情况下才执行总线周期?在什么情况下需要插入等待状态?3.11什么叫做非规则字,微处理器对非规则字是怎样操作的?字节、字在存储单元的存放顺序与存储单元的地址有什么关系?字符在存储单元中以什么形式存放,举例说明?3.128086对1MB的存储空间是如何按高位库和低位库来进行选择和访问的?用什么控制信号来实现对两个库的选择?3.13堆栈的深度由哪个寄存器确定?为什么说一个堆栈的深度最大为64KB?在执行一条入栈或出栈指令时,栈顶地址将如何变化?3.148086/8088CPU对(RESET)复位信号的复位脉冲宽度有何要求?复位后内部寄存器的状态如何?DT/信号起什么作用?它在什么情况下被浮置为高3.15ALE信号起什么作用?它在使用时能否被浮空?R阻状态?3.168086/8088CPU的哪些引脚采用了分时复用技术?哪些引脚具有两种功能?3.178086/8088 CPU的微机系统有哪两种工作方式?它们由什么引脚来实现控制?最小工作方式的主要特点是什么?3.18什么是寻址方式?8086/8088微处理器有哪几种主要的寻址方式?试写出寻址存储器操作时计算有效地址(EA)的通式?3.19指出8086/8088下列指令源操作数的寻址方式。
(1) MOV AX,1200H (2)MOV BX,[1200H](3) MOV BX,[SI] (4) MOV BX,[SI+1200H](5) MOV [BX+SI],AL (6)IN AL,DX3.20指出8086/8088下列指令中存储器操作数物理地址的计算表达式。
(1)MOV AL,[DI] (2)MOV AX,[BX+SI](3)MOV 8[BX+DI],AL (4)ADD AL,ES :[BX](5)SUB AX,[2400H] (6)ADC AX,[BX+DI+1200H](7)MOV CX,[BP+SI] (8)INC BYTE PTR [DI](9)MOV CL,LIST[BX+SI]3.21指出8086/8088系列指令的错误。
(1)MOV IP,[SI] (2)MOV CS,AX (3)MOV BL,SI+2 (4)MOV 60H,AL (5)PUSH 2400H (6)INC [BX] (7)ADD [2400H],24H (8)MOV [BX],[DI] (9)MOV SI,AL (10)POP CS3.22阅读下列程序段,指出每条指令执行以后有关寄存器的内容,并在DEBUG环境下验证结果。
MOV AX, 0ABCHDEC AXAND AX,00FFHMOV CL, 4SAL AL, 1MOV CL,ALADD CL, 78HPUSH AXPOP BX3.23指出RET和IRET两条指令的区别,并说明二者各用在什么场合?3.24说明MOV BX, DATA和MOV BX, OFFSET DATA指令之间的区别。
3.25假定PC存储器低地址区有关单元的内容如下:(0020H) = 3CH,(0021H) = 00H,(0022H) = 86H ,(0023H) = 0EH且CS = 2000H,IP = 0010H,SS = 1000H,SP = 0100H,FLAGS = 0240H,这时若执行INT 8 指令,试完成下列问题。
(1) 程序转向何处执行(用物理地址回答)?(2) 栈顶6个存储单元的地址及内容分别是什么(用16进制数表示)?3.26什么叫堆栈?说明堆栈中数据进出的顺序以及压入堆栈和弹出堆栈的操作过程。
堆栈指令一次传送8位还是16位?设SP = 2000H,AX = 3000H,BX = 5000H,执行下列程序段后,问SP = ?AX = ? BX = ?PUSH AXPUSH BXPOP AX3.27某程序段如下所示,左列为汇编的机器码,右列为对应的汇编程序(XXX代表一条指令):2000H: 40D0H JZ CTN... ...2000H:40E1H ABC:XXX... ...2000H: 40EFH CTN: XXX... ...2000H:40FEH JNE ABC试问代码中跳转指令ABC = ?CTN = ?3.28若AX = 5555H,BX = FF00H,试问在下列程序段执行后,AX = ?BX = ? CF = ?AND AX,BXXOR AX,AXNOT BX3.29试比较SUB AL,09H与CMP AL,09H这两条指令的异同,若AL = 08H,分别执行上述两条指令后,SF = ?CF = ? OF = ? ZF = ?3.30使用最少的指令,实现下述要求的功能。
(1) AH的高4位清0。
(2) AL的高4位取反。
(3)AL的高4位移到低4位,高4位清0。
(4)AH的低4位移到高4位,低4位清0。
3.31设BX = 6D16H,AX = 1100H,写出下列两条指令执行后BX寄存器中的内容。
MOV CL, 06HROL AX, CLSHR BX, CL3.32设初值AX = 0119H,执行下列程序段后AX = ?MOV CH, AHADD AL, AHDAAXCHG AL, CHADC AL, 34HDAAMOV AH, ALMOV AL, CHHLT3.33设初值AX = 6264H,CX = 0004H,在执行下列程序段后AX = ?AND AX, AXJZ DONESHL CX,1ROR AX, CLDONE: OR AX, 1234H3.34写出可使AX清0的几条指令。
3.35带有OFFSET的MOV指令与LEA指令比较,哪条指令的效率更高?3.36若AC = 1001H,DX = 20FFH,当执行ADD AX,DX指令以后,请列出和数及标志寄存器中每个位的内容(CF、AF、SF、ZF和OF)。
3.37若DL = 0F3H,BH = 72H,求DL – BH运算结果及标志寄存器各位的内容。
3.38用AND指令实现下列操作。
(1)BX“与”DX,结果存入BX。
(2)0AEH“与”DH。
(3)DI“与”BP,结果存入DI中。
(4)1234H“与”AX(5)由BP寻址的存储单元的数据“与”CX,结果存入存储单元中。
(6)AL和WAIT存储单元中的内容相“与”,结果存入WAIT。
3.39设计一个程序段,将DH中的最左3位清0,而不改变DH中的其他位,结果存入BH中。
3.40通“OR”指令实现下列操作。
(1)BL“或”DH,结果存入DH。
(2)0AEH“或”CX。
(3)DX“或”SI,结果存入SI中。
(4)1234H“或”AX。
(5)由BP寻址的存储单元的数据“或”CX,结果存入存储单元中。
(6)AL和WHEN存储单元中的内容相“或”,结果存入WHEN。
3.41设计一个程序段,将DI中的最右5位置1,而不改变DI中的其他位,结果存入SI中。
3.42设计一段程序代码,将AX中的最右4位置1,将AX中的最左3位清0,并且把AX中的7、8、9位取反。
3.43选择正确的指令实现下列操作。
(1)把DI右移3位,再把0移入最高位。
(2)把AL中的所有位左移1位,使0移入最低位。
(3)AL循环左移3位。
(4)DX带进位位循环右移1位。
3.44试比较JMP [DI] 与JMP FAR PTR[DI]指令的操作有什么区别?3.45用串操作指令设计实现如下功能的程序段:先将100个数从6180H处移到2000H处;再从中检索出等于AL中字符的单元,并将此单元值换成空格符。
3.46在使用条件转移命令时,特别要注意它们均为相对转移指令,请说明“相对转移”的含义是什么?如果要向较远的地方进行条件转移,那么在程序中应如何设置?3.47在执行中断返回指令IRET和过程(子程序)返回指令RET时,具体操作内容有什么区别?3.48INT 40H 指令的中断向量存储在哪些地址单元?试用图解说明中断向量的含义和具体内容,并指出它和中断入口地址之间是什么关系?。