微机原理习题 下载本文

第一章习题:

1. 求下列带符号十进制数的8位二进制补码。

(1)+127;(2) -1;(3) -128;(4) +1 2.求下列带符号十进制数的16位二进制补码。

(1) +655;(2) -1;(3) -3212;(4) +1 3.已知一个数的补码是10011111B,这个数的真值是? 4.已知一个数的补码是00011111B, 这个数的真值是? 5.有一个16位的数值0100,0000,0110,0011,

(1)如果它是一个二进制数,和它等值的十进制数是多少? (2)如果它们是ASCII码字符,则是些什么字符? (3)如果是压缩的BCD码,它表示的数是什么?

6.假设两个二进制数A=00101100,B=10101001,试比较它们的大小。 (1)A、B两数均为带符号的补码数。 (2)A、B两数均为无符号数。

7.实地址模式下,20位物理地址是如何形成的?若已知逻辑地址为C018:FE7FH,试求物理地址。 第二章习题

1. 说明汇编、汇编程序和汇编语言程序之间有何关系?

2. 如果(BH)=88H,(BL)=26H,能否说(BX)=8826H? 为什么?

3. 寄存器寻址和寄存器间接寻址有何不同?二者允许使用的寄存器的个数是否相同? 4. 8088的一条指令一般是由多少个字节组成的?最长的是几字节指令? 5. 简略的说,一条指令的执行时间都与哪些因素有关? 6. 填空:

(1) 指令中所使用的累加器是指______和______。 (2) 指令的操作码通常占指令的______字节。

(3) 8086/8088执行一条最快的指令需要______个T周期。

(4) 如果操作数在内存中,存取操作数的寻址方式有______种。

(5) 凡属16位的数据,包括指令中的立即数、指令中的有效地址、指令中的位移量、存

储单元中的字数据、堆栈操作的数据等,在存储器中存放的格式顺序都是______在前,______在后。

7. 指出下列指令中源操作数和目的操作数的寻址方式: (1)MOV SI,1000 (2) MOV BP,AL (3) MOV [SI],1000 (4) MOV BP,[AX]

(5)MOV DL,[BX+SI+20H] (6)PUSH DS (7)POP AX

(8)MOV AX,[2000H] (9)IMUL [BP+2],BX

8. 下列的指令是否有错?有则指出错误所在: (1) MOV DS,117CH (2) MOV [BX],[28A0H]

(3) MOV CS,AX (4) MOV DS,ES (5) MOV AL,DX

(6) MOV AX,1000[BX] (7) MOV BX,[AX] (8) MOV AL,C8H (9) MOV AX,00F1 (10) MOV AX,[SI-10]

9.下列指令是否有错,有则指出错误所在: (1) ADD AL,300 (2) SUB AX,100

(3) MOV AX,[SI] [DI] (4) CMP 60,BL (5) INC[BX] (6) MUL 0 (7) MUL AL,BL (8) LEA BX,2100H (9) SHL AX (10) SAR BX,4

10.下列指令是否有错,有则指出错误所在: (1) PUSH AL (2) PUSH CX (3) PUSH CS (4) PUSH SI (5) POP BH (6) POP DX (7) POP DS (8) POP CS

11.已知下列助记符指令所对应的十六进制机器码指令中已有操作码部分,请在横线上面填上正确的数字:

助记符指令 机器指令

(1) MOV AX,21B0H B8______ (2) MOV AX,82H B8______ (3) MOV AL,45H B0______ (4) MOV AH,1FH B4______ (5) MOV CL,-29 B1______ (6) MOV CX,-29 B9______

12. 设有关的寄存器和内存单元中的内容为:(BX)=0032H,(SI)=002EH,(DS)=1607H,(ES)=1687H,(168A2H)=6626H,(168D0H)=7726H,(169A2H)=2226H,(169B2H)=3326H,(169D0H)=4426H,(169D5H)=5526H,(17970H)=1126H,说明分别执行下面各条指令之后AX寄存器的内容是什么。

(1) MOV AX,2A00H (2) MOV AX,BX

(3) MOV AX,[1000H] (4) MOV AX,[BX] (5) MOV AX,10H [BX] (6) MOV AX,[SI+4] (7) MOV AX,[BX+SI] (8) MOV AX,[BX+SI+5] (9) MOV AX,ES:[BX]

(10) MOV AX,ES:[BX] [SI]

13. 已知(AX)=2AF0H,(BX)=8F09H,(CX)=8826H,(SP)=2000H,(SS)=017CH,画出堆栈示意图说明,按顺序执行下面几条指令之后,堆栈中的内容以及SP、AX、BX、CX和SS中的内容如何?

PUSH AX PUSH BX POP CX

14.若(SP)=2000H,(AX)=3355H,(BX)=4466H,试指出下列指令,或程序段执行后有关寄存器的内容。

(1)PUSH AX;执行后(AX)=? (SP)=? (2)PUSH AX PUSH BX

POP DX;执行后(AX)=?,(DX)=?,(SP)=?

15.CPU执行一条访问堆栈的指令时,必定是按“后进先出”的原则吗?举例说明。

16.已知(AX)=14F0H,(BX)=035CH,(SI)=1200H,(DS)=2000H,(215A2H)=75A2H,问执行指令ADD AX,[BX+SI+46H]之后(AX)=?,(BX)=?,OF、SF、ZF、PF和CF的状态如何? 17.分别执行下面两组指令后,问:OF、SF、ZF、AF、PF、CF的标志位的状态如何? (1)MOV AL,127 (2) MOV AL,7FH SUB AL,3 ADD AL,-3

18.设 DS=1000H:SS=2000H,AX=1A2BH,BX=1200H,CX=339H,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。下列各指令都在此环境下执行,在各小题的空格中填入相应各 指令的执行结果。 (1)MOV AX,1234H (AX)=

(2)MOV AX, [1352H] (AX)=

(3)MOV 0150H [BX],CH

(11350H)= ,(11351H)= (4)MOV 0150H [BP] (AX)=

(5)POP AX

(AX)= ,(SP)=

(6)ADD [SI],CX

(11354H)= ,(11355H)=

SF= ZF= ,PF= ,CF= , OF=

(7)SUB BH,0150H [BX][SI]

(BH)= ,SF= ,ZF= , PF= ,CF= ,OF= (8)INC BYTE PTR 0152H [BX]

(11352H)= ,(11353H)= ,CF= (9)INC WORD PTR 0152H [BX]

(11352H)= ,(11353H)= ,CF= (10) SAR BYTE PTR 0150H [BX],1

(11350H)= ,CF= ,OF= (11) SAL BYTE PTR 0150H [BX],1 (11350H)= ,CF= ,OF=

19.指出下列程序段执行后的结果:

(1) MOV AL,11H

MOV BL,0B4H MUL BL

无符号乘的结果=?

(2) MOV AL,11H

MOV BL,0B4H IMUL BL

有符号乘的结果=? 20.写出指令,使:

(1)AX的低4位清0。 (2)BX的低4位置1。 (3)CX的低4位取反。

21.找出一条能与NOT AX指令相等价的另一条指令?

22.已知CALL MULY指令的机器码存放在内存代码段中有效地址为4AF0H开始的单元中(段内直接调用,三字节指令),指令中的位移量D16=120BH,当前(SP)=2100H,试问该转子指令执行之后:

(1) (IP)=? (2) (SP)=?

(3) 堆栈顶部的内容是什么?

23.下列各指令中,哪些改变堆栈指针SP的内容?说明原因。

(1) PUSH AX (7)MOV SP,AX (2) RET (8)JMP OPR (3) DEC SP (9)INC SP (4) POP BX (10)IRET

(5) CALL DST (11)MOV SP,DATA (6) LOOP OPR (12)JNZ OPR