微型计算机原理与应用第四版课后答案

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

微机原理第七章答案

7.3 设AX=1122,BX=3344H,CX=5566H,SS=095BH,SP=0040H,下述程序执行

后AX, BX, CX, DX 4个通用寄存器内容是多少?画出堆栈存储器的物理地址及存储内容和SP指向的示意图。

PUSH AX

PUSH BX

PUSH CX

POP BX

POP AX

POP DX

参考答案:(BX)=5566H, (AX)=3344H, (DX)=1122H ,(CX)=5566H

095EEH

095EFH

Si 095F0H

7.4设SP=0040H,如果用进栈指令存入5个数据,则SP=0036H

,若用出栈

指令取出两个数据,则SP=003AH 。

7.5将表中程序段各指令执行后 AX 的值用十六进制数填入表中 参考答案:

7.6用十六进制数填下表,已知DS=1000H,ES=2000H,SS=0FC0H,通用寄存器

的值为0。

参考答案:逻辑地址=段基址:段内偏移地址

BP 以SS 为默认段基址,其余寄存器以DS 为默认段基址 ES:为段前缀,以ES 为段基址

存储器操作数逻辑地址 0FC0H:0000H

指令 SUB [BP],AL

7.7试给出执行完下列指令后OF 、SF 、ZF 、CF4个可测试标志位的状态(用十

六进制给出FLAG 的值,其余各位为0)

(1) M0V AX,2345H

ADD AX,3219H

(3)M0V CX,3579H

(2) MOV BX,5439H

ADD BX,456AH

(4) MOV DX,9D82H

SUB DX,4B5FH

参考答案:(这里除了上面4个标志还考虑了奇偶标志PF和辅助进位标志AF)(1)AX=555EH FLAG=OOOOH

7.8 AX中有一负数,欲求其绝对值,若该数为补码,则使用指令NEG AX ;若为原码则用指令AND AX,7FFFH。。

7.9分别写出实现如下功能的程序段:

(1)将AX中间8位(做高8位),BX低4位和DX高4位(做低4位)拼成

一个新字。(注意:左移右移操作)

AND AX,OFFOH

MOV CL,O4H

SHL AX , CL

AND BL,OFH

AND DH,OFOH

SHR DH,CL

SHL BL,CL

OR AL,DH

OR AL,BL

(2) 将CX中间8位取反,其余位不变

XOR CX, OFFOH

(3) 将数据段以BX为偏移地址的连续3单元中的无符号数求和。

MOVCX,3

MOVAL ,O

LAB : ADD AL,[BX]

ADC AH,00H ;(注意字节单元的和可能超过一个字节,故这里和扩展至AH)

INC BX

LOOP LAB

(4) 将数据段中以BX为偏移地址的连续4单元中的内容颠倒过来

MOV CX,2 ;(4/2单元个数除2,循环计数)

MOV SI,BX

ADD SI,3 ;(指向最后一个数据单元,首地址+单元个数-1)

LAB : MOV AL,[BX]

XCHG AL, [SI]

MOV [BX],AL

INC BX

DEC SI

LOOP LAB

⑸将BX中的4位压缩BCD数用非压缩数形式按序放在AL, BL, CL和DL中

MOV CL , 4 (注意先后次序,不能用其它寄存器)

MOV DL,BL

AND DL,0FH

MOV AL,BH

SHR AL,CL

XCHG BH,BL

AND BL,0FH

SHR BH,CL

MOV CL,BH

(6)不用乘法指令实现AL (无符号数)乘以20

A L*(24+22)( 24左移4 位,22左移2 位)

MOV AH,0

MOV CL,2

SAL AX,CL ;进行乘4操作

MOV BX,AX ;保留乘4中间结果

SAL AX,CL;再移2次,相当于乘16

ADD AX , BX

7.10 一段数据定义为:

DATA SEGMENT

51 DB 0,1,2,3,4,5

52 DB ‘2345'

C0UNT=$-S1

NB DB 3DUP(2)

NW DW 120,-256

P DW -1

DATA ENDS

(1)画出该数据段数据存储形式(注意:符号常量COUNT不分配存储单元)

(3)填写表中程序段各指令执行后。目的寄存器的值,并指出源操作数所使用的寻址方式(注意:COUNT是符号常量是立即数)

b. MOV BP,OFFSET S2 改正

MOV CL,[BP] c. MOV SI,OFFSET NB 改正

MOV AX,WORD PTR S1 MOV BX,OFFSET S2 MOV CL,[BX]

MOV SI,OFFSET NB

(4)改正下列不正确的指令错误

MOV [SI], +'MOV BYTE PTR [SI] , + '

d. MOV DL,NW+2 改正MOV DL, BYTE PTR NW+2

e. MOV DI,CH 改正MOV DI,CX

f. MOV BX, OFFSET S1 改正MOV BX, OFFSET S 1

MOV DH , BX+3 MOV DH , [BX+3]

g. INC COUNT

改正MOV BX, COUNT INC BX (符号常数不能加1)

h. MOV NB,S2 改正MOV AL,S2 MOV NB,AL (两个内存变量不能直接传送)

i. MOV AX,[BX+S1] 改正MOV AX,WORD PTR [BX+S1]

j. ADD AX,[DX+NW] 改正ADD AX,[BX+NW]

相关文档
最新文档