微机原理(王忠民版 课后答案) 联系客服

发布时间 : 星期四 文章微机原理(王忠民版 课后答案)更新完毕开始阅读014816da80eb6294dd886c66

9.什么是逻辑地址?什么是物理地址?若已知逻辑地址为BA00:A800,试求物理地址。

答: 逻辑地址:由段地址和偏移地址表示的存储单元地址称为逻辑地址。

物理地址:CPU对存储器进行访问时实际所使用的20位地址称为物理地址。 若 逻辑地址为BA00H:A800H

则 物理地址=BA00H×10H+A800H=C4800H

10.简述堆栈指针寄存器SP的功能及堆栈的操作过程。 答: (1) SP的功能:指示进栈和出栈操作时的偏移地址。

(2) 堆栈的操作过程:进栈时,先将SP-2,再将数据压入堆栈(即先移后入);出栈时,先将数据弹出堆栈,再将SP+2(即先出后移)。

第四章 80X86 指令系统

1、 指出源操作数的寻址方式 ⑴ MOV BX,2000H ;立即数寻址 ⑵ MOV BX,[2000H] ⑶ MOV BX,[SI] ;寄存器间接寻址 ⑷ MOV BX,[SI+2000H]

直接寻址

寄存器相对寻址

;;

⑸ MOV [BX+SI],AL ;寄存器寻址 ⑺ MUL BL

⑹ ADD AX,[BX+DI+80]

;基址变址相对寻址 ;段内间接寻址 ;寄存器相对寻址 ;立即数寻址

;寄存器寻址 ⑻ JMP BX

⑼ IN AL,DX ;端口间接寻址 ⑽ INC WORD PTR [BP+10H] ⑾ MOV CL,LENGTH VAR ;立即数寻址 ⑿ MOV BL,OFFSET VAR1

2、 指出下列指令是否正确

(1) MOV DS,0100H (2) MOV BP,AL (3) XCHG AH,AL (4) OUT 310H,AL (5) MOV BX,[BX]

;错误。源操作数是立即数时,目的操作数不能时段寄存器 ;错误。操作数类型不一致 ;正确。

;错误。端口直接寻址的范围应在0~FFH之间 ;正确。 ;正确。

(6) MOV ES:[BX+DI] ,AX

(7) MOV AX,[SI+DI] ;错误。存储器寻址中有效地址不能由两个变址寄存器组成 (8) MOV SS:[BX+SI+100H],BX ;正确。 (9) AND AX,BL ;错误。操作数类型不一致 (10) MOV DX,DS:[BP] (11) ADD [SI],20H

(12) MOV 30H,AL (13) PUSH 2000H (14) MOV [SI],[2000H] (15) MOV SI,AL (16) ADD [2000H],20H

;正确。

;错误。用PTR 说明类型

;错误。目的操作数不能为立即数

;错误。堆栈指令的操作数不能是立即数

;错误。两个操作数不能同时为存储器操作数 ;错误。操作数类型不一致 ;错误。用PTR 说明类型

;错误。目的操作数不能为代码段寄存器 ;错误。需用PTR说明类型

;错误。端口间接寻址的寄存器只能是DX寄存器 ;错误。移位次数大于1时应该用CL寄存器 ;错误。交换指令中不能出现段寄存器

(17) MOV CS,AX (18) INC [DI] (19) OUT BX,AL (20) SHL BX,3 (21) XCHG CX,DS

(22) POP AL ;错误。堆栈指令的操作数只能是字操作数(即16位操作数)

3、 写出存储器操作数物理地址的计算表达式

(1) MOV AL,[DI] ;(DS)×10H+(DI)

(2) MOV AX,[BX+SI] (3) MOV 5[BX+DI],AL (4) ADD AL,ES:[BX]

;(DS)×10H+(BX)+(SI) ;(DS)×10H+(BX)+(DI)+5 ;(ES)×10H+(BX)

(5) SUB AX,[1000H] ;(DS)×10H+1000H

(6) ADC AX,[BX+DI+2000H] ;(DS)×10H+(BX)+(DI)+2000H (7) MOV CX,[BP+SI] (8) INC BYTE PTR [DI]

;(SS)×10H+(BP)+(SI) ;(DS)×10H+(DI)

4、 若(DS)=3000H,(BX)=2000H,(SI)=0100H,(ES)=4000H,计算下列存储器操作数的物理地址。

(1) (DS)×10H+(BX)=3000H×10H+2000H=32000H

(2) (DS)×10H+(BX)+(SI)+1000H=3000H×10H+2000H+0100H+1000H=33100 H (3) (DS)×10H+(BX)+(SI)=3000H×10H+2000H+0100H=32100 H (4) (ES)×10H+(BX)=4000H×10H+2000H=42000 H

5、若(CS)=E000H,说明代码段可寻址物理存储空间的范围。

∵ 最小物理地址为:(CS)×10H+0000H=E0000H

最大物理地址为:(CS)×10H+FFFFH=EFFFFH

∴ 代码段可寻址物理存储空间的范围是:E0000H~EFFFFH

6、设(SP)=2000H,(AX)=3000H, (BX)=5000H,执行下列程序段后,(SP)=?,(AX)=?, (BX)=?

PUSH AX

PUSH BX POP AX

(SP)=1FFEH,(AX)=5000H, (BX)=5000H

7、试比较SUB AL,09H与CMP AL,09H这两条指令的异同。若(AL)=08H,分别执行上述两条指令后,(AL)=?,CF=?,OF=0,ZF=?

(1) 相同点:两条指令都能完成(AL)-09H的功能,并且都影响六个状态标志位; 不同点:SUB指令将运算结果回送到AL寄存器中,而CMP指令不回送。

(2) SUB AL,09H

;(AL)=FFH,CF=1,OF=0,ZF=0 ;(AL)=08H,CF=1,OF=0,ZF=0

CMP AL,09H

8、分别执行下列指令,试求AL的内容及各状态标志位的状态。 (1) MOV AL,19H ; ADD AL,61H ;(AL)=7AH OF=0 SF=0 ZF=0 AF=0 PF=0 CF=0

(2) MOV SUB (3) MOV ADD (4) MOV

SUB

AL,19H

AL,61H

;(AL)=B8H

OF=0 SF=1 ZF=0 AF=0 PF=1 CF=1 OF=0 SF=0 ZF=0 AF=1 PF=0 CF=1 OF=1 SF=1 ZF=0 AF=0 PF=0 CF=1

AL,5DH ;

AL,0C6H ;(AL)=23H AL,7EH AL,95H

;(AL)=E9H

9、用最少的指令,实现下述要求的功能。 (1) AH的高4位清零。

AND AH,0FH

(2) AL的高4位去反。 (3) AL的高4位移到低4位,高4位清0。 (4) AL的低4位移到高4位,低4位清0。

XOR AH, 0F0H

MOV CL,4 SHR AL,CL MOV CL,4 SHL AL,CL

10、设(BX)=6D16H,(AX)=1100H,写出下列三条指令执行后,AX和BX寄存器中的内容。

MOV CL,06H ROL AX,CL SHR BX,CL

(AX)=4004 H (BX)=01B4 H

11、设初值(AX)=0119H,执行下列程序段后,(AX)=? MOV CH,AH

ADD AL,AH

DAA

XCHG AL,CH

ADC DAA MOV MOV

AL,34H AH,AL AL,CH

(AX)=3520 H

12、指出下列程序段的功能。

(1) MOV

LEA LEA

CX,10 SI,First DI,Second

将 First串中前10个字符传送至Second 中

DI,[0404H]

REP MOVSB

(2) CLD LEA

MOV CX,0080H XOR AX,AX REP STOSW

将起始地址为0404 H开始的80 H个单元置成0

13、 设(BX)=6F30H,(BP)=0200H,(SI)=0046H,(SS)=2F00H,(2F246H)=4154H,试求执行XCHG

BX,[BP+SI]后, (BX)=4154H

(BX)=?,(2F246H)=? (2F246H)=6F30H

14、设(BX)=0400H,(DI)=003CH,执行LEA BX,[BX+DI+0F62H]后,(BX)=? (BX)=139E H

15、设(DS)=C000H,(C0010H)=0180H,(C0012H)=2000H,执行LDS SI,[10H]后,(SI)=?, (DS)=?

(SI)=0180 H,(DS)=2000 H

16、已知(DS)=091DH,(SS)=1E4AH,(AX)=1234H,(BX)=0024H,(CX)=5678H,(BP)=0024H,(SI)=0012H,(DI)=0032H,(09226H)=00F6H,(09228H)=1E40H,试求单独执行下列指令后的结果。 (1) MOV CL,20H[BX][SI] ;(CL)=0F6 H

(2) MOV (3) LEA

[BP][DI],CX BX,20H[BX][SI]

;(1E4F6 H)=5678 H ;(BX)=0056 H ;(AX)=1E40 H ;

;((SI))=0024 H

MOV AX,2[BX] (4) LDS SI,[BP][DI] MOV [SI],BX

(5) XCHG CX,32H[BX] XCHG 20H[BX][SI],AX ;

;(AX)=5678 H ,(09226H)=1234 H

17、若CPU中各寄存器及RAM参数如图所示,试求独立执行如下指令后,CPU及RAM相应寄存器及存储单元的内容是多少?

CPU CS DS SS ES

RAM FFFFH 0004H 1000H 17C6H CX BX SP DX 20506H 20507H 20508H 20509H 执行前 06H 00H 87H 15H 执行后 不变 不变 不变 不变 3000H 2050H 50A0H 0FFFH