微机课后答案整理

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3.2 指出下列MOV指令的源操作数的寻址方式:

MOV AX,1234H

MOV AX,BX

MOV AX,[BX]

MOV AX,TABLE;TABLE ;TABLE是一个变量名

MOV AX,[1234H]

MOV AX,[BX+1234H]

MOV AX,[BP][SI]

MOV AX,[BX+SI-1234H]

【解】:MOV AX,1234H 立即寻址

MOV AX,BX 寄存器寻址

MOV AX,[BX] 寄存器间接寻址

MOV AX,TABLE ;TABLE是一个变量名直接寻址方式

MOV AX,[1234H] 直接寻址方式

MOV AX,[BX+1234H] 寄存器相对寻址

MOV AX,[BP][SI] 基址变址寻址

MOV AX,[BX+SI-1234H] 相对地址变址寻址

3.3 设:(DS)=2000H,(BX)=0100H,(SS)=1000H,(BP)=0010H,TABLE的物理地址为2000AH,(SI)=0002H。求下列每条指令源操作数的存储单元地址:MOV AX,[1234H]

MOV AX,[BX]

MOV AX,TABLE[BX]

MOV AX,[BP]

MOV AX,[BP][SI]

【解】:存储单元地址:(DS)×10H + EA =2000H×10H+1234H=21234H

存储单元地址:(DS)×10H +(BX)=2000H×10H+0100H=20100H

存储单元地址:(DS)×10H+EA=2000H×10H+0100H+000AH=2010AH

存储单元地址:(SS)×10H+EA=1000H×10H+0010H=10010H

储单元地址:(SS)×10H+EA=1000H×10H+0010H+0002H =10012H

3.4 设ARRAY是字数组的首地址,写出将第5个字元素取出送AX寄存器的指令,要求使用以下几种寻址方式:

⑴直接寻址⑵寄存器间接寻址⑶寄存器相对寻址⑷基址变址寻址

【解】:(1)直接寻址(2)寄存器间接寻址(3)寄存器相对寻址(4)基址变址寻址MOV AX, ARRAY+8 MOV BX, ARRAY+8 MOV BX, 8 LEA BX, ARRAY

MOV AX, [BX] MOV AX, ARRAY[BX] MOV SI, 8

MOV AX,[BX+SI]

3.7 下列每组指令有何区别?

(1)MOV AX,1234H 立即寻址

MOV AX,[1234H] 直接寻址

(2)MOV AX,TABLE 直接寻址

MOV AX,[TABLE] 直接寻址

(3)MOV AX,TABLE 将TABLE的内容送AX

LEA AX,TALBE 将TABLE的偏移量送AX

(4)MOV AX,BX 寄存器寻址

MOV AX,[BX] 寄存器间接寻址

3.8 MOV CS,AX指令正确吗?

错误。不能用CS作目的操作数。

3.9 写一指令序列将3456H装入DS寄存器。

MOV AX,3456H

MOV DS,AX

不能将立即数直接送段寄存器,所以得间接。

3.10 若正在访问堆栈的03600H单元,则SS和SP的值各是多少?03600H=SS*10H+SP

所以有多个答案。例如:

SS=350H SP=0H

SS=300H SP=600H

3.11 若(SS)=2000H,(SP)=000AH,

先执行将字数据1234H和5678H压入堆栈的操作,

再执行弹出一个字数据的操作,

试画出堆栈区及SP的内容变化过程示意图(标出存储单元物理地址)

3.13 能用ADD指令将BX内容加到ES中去吗?

不能。算术运算中段寄存器不得作为目的操作数。

3.14 INC [BX]指令正确吗?

错误。需指明存储器操作数的类型是字节还是字。

3.15 若(AX)=0001H,(BX)=0FFFFH,执行ADD AX,BX之后,

标志位ZF、SF、CF、OF各是什么?

ZF=1 SF=0 CF=1 OF=0

3.16 写一指令序列完成将BL中的数据除以CL中的数据,

再将其结果乘以2,并将最后为16位数的结果存入DX寄存器中。

MOV AL,BL

CBW

DIV CL

MOV CL,2

MUL CL

MOV DX,AX

3.17 写一指令序列,完成将AX寄存器的最低4位置1,

最高3位清0,第7、8、9位取反,其余位不变的操作。

OR AX,000FH

AND AX,1FFFH

XOR AX,0380H

第四章

⑴ADD V AR1,V AR2 ⑵SUB AL,V AR1 ⑶JMP LAB[SI] ⑷JNZ V AR1

⑸JMP NEAR LAB

【解】:

⑴ADD V AR1,V AR2

ADD两个操作数不能同时为存储单元,

MOV AX, V AR1

ADD AX, V AR2

⑵SUB AL,V AR1

两个操作数不匹配

SUB AX, V AR1

⑶JMP LAB[SI]

LAB与[SI]不能相加

JMP WORD PTR [SI]

⑷JNZ V AR1

JNZ后面应是标号,不应是变量

JNZ LAB

⑸JMP NEAR LAB

缺少PTR运算符

JMP NEAR PTR LAB

4.5 假设程序中的数据定义如下:

PARTNO DW ?

PNAME DB 16 DUP(?)

COUNT DD ?

PLENTH EQU $-PARTNO

问PLENTH的值为多少? 它表示什么意义?

PLENTH的值为22,表示从PARTNO开始到PLENTH之前所含字节数

4.6 有符号定义语句如下:

BUFF DB 1,2,3,‘123’

EBUFF DB 0

L EQU EBUFF-BUFF

问L的值是多少?

L值为6。

BUFF DB 1,2,3,‘123’

L EQU $-BUFF

EBUFF DB 0

4.9给出等值语句如下:

ALPHA EQU 100

BETA EQU 25

GAMMA E QU 2

下列表达式的值是多少?

⑴ALPHA*100+BETA ⑵ALPHA MOD GAMMA+BETA ⑶(ALPHA+2)*BETA-2 ⑷(BETA/3) MOD 5

⑸(ALPHA+3)*(BETA MOD GAMMA) ⑹ALPHA GE GAMMA

⑺BETA AND 7 ⑻GAMMA OR 3

【解】:⑴ALPHA*100+BETA

100×10025=10025

⑵ALPHA MOD GAMMA+BETA

100/(25+2)=19

⑶(ALPHA+2)*BETA-2

(100+2)*25=2548

⑷(BETA/3) MOD 5

(25/3) MOD 5=3

⑸(ALPHA+3)*(BETA MOD GAMMA)

(100+3)*(25 MOD 2)=103

⑹ALPHA GE GAMMA

相关文档
最新文档