微机原理及应用(陈继红、徐晨)课后习题答案 下载本文

微机原理及应用(陈继红、徐晨)课后习题答案

2) -361.25D=-101101001.01B=29×(-0.101101001010000)

+9=1001,补码:1001,尾数:[ -0.101101001010000]补=1.010010110110000 规格化浮点数

:0 0001001 1 010010110110000

3.14 设某计算机用

12位表示一个浮点数,该浮点数从高位到低位依次为:阶符 1位、 阶码

3位(原码表示)、数符 1位、尾数 7位(补码表示 ),则

0 100 1 0110011的真值是多少? 答案:-9.625

3.15 8086汇编语言指令的寻址方式有哪几类 ?哪种寻址方式的指令执行速度最快 ?

解:寻址方式分为

:立即数寻址方式、寄存器操作数寻址方式和存储器操作数寻址方式。 其中,寄存器操作数寻址方式的指令执行速度最快。

3.16 在直接寻址方式中

,一般只指出操作数的偏移地址 ,那么,段地址如何确定?如果要用 某个段寄存器指出段地址 ,指令中应该如何表示 ?

解:默认的数据访问 ,操作数在

DS段;堆栈操作在 SS段;串操作源操作数 (SI)在 DS

段,目的操作数 (DI)在 ES段;用

BP作为指针在

SS段。如果要显式地指定段地址,则在操作 数中规定段寄存器。例如:

MOV AX, ES:(BX+10H)

3.17 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=10605H

3.18 下面这些指令中哪些是正确的?那些是错误的?如果是错误的,请说明原因。 (1)XCHG CS,AX ;错,CS不能参与交换

(2)MOV [BX],[1000] ;错,存储器之不能交换 (3)XCHG BX,IP;错, IP不能参与交换

(4)PUSH CS;错, CS不能为 PUSH的操作数

(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.19 试述以下指令的区别: ⑴ MOV AX,3000H 与 MOV AX,[3000H]

答案:⑴ MOV AX,3000H指令源操作数的寻址方式为立即寻址方式,指令执行结果为: (AX)=3000H。而

MOV AX,[3000H]指令源操作数的寻址方式为直接寻址方式 ,指令执行结

果为:DS:3000H)AX。

⑵ MOV AX,MEM 与 MOV AX,OFFSET MEM

答案:⑵ MOV AX,MEM指令源操作数的寻址方式为直接寻址方式,指令执行结果为: DS:MEM)AX。而

MOV AX,OFFSET MEM指令的执行结果是把 MEM的偏移量送 AX。

⑶ MOV AX,MEM 与 LEA AX,MEM

答案:⑶ MOV AX,MEM指令的执行结果是 LDS:MEM)AX。而 LEA AX,MEM 的执行结果是把 MEM的偏移量送 AX。

(4) JMP SHORT L1 与 JMP NEAR PTR L1 3

微机原理及应用(陈继红、徐晨)课后习题答案

答案:JMP SHORT L1为段内无条件短程转移,跳转的范围不得超过带符号的 8位二进

制数表示的字节范围;

JMP NEAR PTR L1为段内无条件近程转移,跳转的范围不得超过带 符号的

16位二进制数表示的字节范围。

(5) CMP DX,CX与 SUB DX ,CX

答案:CMP DX,CX 是比较,也是利用减法比较,但是 dx中的值不变,标志寄存器改 变。SUB DX ,CX 是做减法运算, dx中为减后的值,标志寄存器改变

(6)MOV [BP][SI],CL与 MOV DS:[ BP][SI],CL

答案:BP默认的段基址是 SS,物理地址

PA=SS+BP+SI;第二个重定义为 DS段基址, 物理地址 PA=DS+BP+SI

3.20 设

DS=2100H,SS=5200H,BX=1400H,BP=6200H,说明下面两条指令所进行的 具体操作:

MOV BYTE PTR [BP], 20H MOV WORD PTR [BX], 20H 解:前一条指令是把立即数 20H,传送至堆栈段 (BP的默认段 )偏移量由

BP规定的字节单

元,地址为:52000H+6200H=58200H 第二条指令是把立即数 20H,传送至数据段 (BX的默认段

)偏移量由

BX规定的字单元 ,地

址为:21000H+1400H = 22400H。

3.21 设当前

SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶的地址为多少?当执 行

PUSH BX 指令后,栈顶地址和栈顶 2个字节的内容分别是什么? 答案:当前栈顶的地址 =2FF00H

当执行

PUSH BX 指令后,栈顶地址 =2FEFEH

(2FEFEH)=57H (2FEFFH)=34H

3.22 设

DX=78C5H,CL=5,CF=1,确定下列各条指令执行后, DX和

CF中的值。 (1)

SHR DX,1;DX=3C62H CF=1 (2)

SAR DX,CL;DX=03C6H CF=0 (3)

SHL DX,CL;DX=18A0H CF=1 (4)

ROR DX,CL;DX=2BC6H CF=0 (5)

RCL DX,CL;DX=18B7H CF=1 (6)

RCR DH,1 ;DX=BCC5H CF=0 3.23 设

AX=0A69H,VALUE字变量中存放的内容为 1927H,写出下列各条指令执行 后寄存器和

CF、ZF、OF、SF、PF的值。

AX CF ZF OF SF PF(1)XOR AX,VALUE ; 134EH 0 0 0 0 1

(2)AND AX,VALUE ;