微机原理习题

更新时间:2023-11-16 07:32:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一章习题:

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

24.下面各条指令中,哪些改变(或可能改变)指令指针IP的内容?为什么?

(1) MOV BX,OFFSET COUNT (6)JNE CONT (2) JMP AGAIN (7)RET

(3) PUSH DX (8)LOOP BBCC (4) XCHG BL,M (9)CALL MAIN (5)IRET (10)POP AX

25.试用移位指令分别把AL中的+67和BL中的-59乘以2,写出相应的指令并分析验证所得结果,如果除以2呢?

26.设一个48位的二进制无符号数存放在DX:AX:BX寄存器中,试写出一组指令把这个数乘2(乘积不超过48位)。

27.写出完成下述操作的指令或指令串:

(1)AX中的带符号数除以2,并舍去小数部分,结果仍在AX中。 (2)若BL的第3位是1,则转到标号为CONT处去执行。 (3)若CL的值是负数,则转到标号为NEST处去执行。 (4) 若AL中为奇数,则转到AGAIN标号处去执行。 (5)AL中的内容高、低4位互换。

(6)将DL寄存器的高4位变成3,低4位不变。

(7)使AL寄存器的高4位与BL寄存器的低4位相同AL的低4位不变。 (8)将DX和AX寄存器的内容看作一个整体,算术右移一位。

28.画图说明SAR指令与SHR指令在操作上有何不同?设(AX)=8826H,分别执行SAR AX,1和SHR AX,1后,(AX)=?

29. 带符号的数据在寄存器或存储单元中存放时,都作了符号位扩展处理,举例说明什么叫符号位扩展处理?CBW和CWD的操作是什么?是否进行符号位扩展?通常何时使用?

30.根据除法指令DIV r8的“AL←AX/r8,AH←AX%r8”的说明,一个16位的二进制数除以一个8位的二进制数,其商不会超过8位吗?

31.用两种方法分别编出程序片段,将十六位的带符号的二进制数COUNT除以32,并将商放在AX寄存器中,余数舍去。 (1)用除法指令。 (2)用移位指令。

32.读程序片段,指出运行结果: (1)MOV AL ,28H ADD AL,37H DAA

MOV [2A00H],AL ┉ 问:(AL)=? (DS:2A00H)=? (2)MOV AL, 92H SUB AL, 26H DAS

MOV[2B00H],AL ┉ 问:(AL)=? (DS:2B00H)=? (3)MOV AX,39H

ADD AL,35H

本文来源:https://www.bwwdw.com/article/x5hv.html

Top