微机原理与接口技术 第三章 课后答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三章参考答案
1.按照题目中提出的要求,写出能达到要求的一条(或几条)汇编形式的指令:
⑴将一个立即数送入寄存器BX;
⑵将一个立即数送入段寄存器DS;
⑶将变址寄存器DI的内容送入一个存储单元中;
⑷从存储单元中取一个数送到段寄存器ES中;
⑸将立即数0ABH与AL相加,结果送回AL中;
⑹把BX与CX寄存器内容相加,结果送入BX;
⑺用寄存器间接寻址方式,实现一个立即数与存储单元内容相加,结果放回存储器。
解:(1)MOV BX, 1234H
(2)MOV AX, 1234H
MOV DS, AX
(3)MOV [BX], DI
(4)MOV ES,[BX]
(5)ADD AL,0ABH
(6)ADD BX,CX
(7)MOV AX,[BX]
ADD AX,1234H
MOV [BX],AX
2.执行下面程序,完成指令后的填空:
MOV AX,2000H ;AH= 20H
MOV DS,AX ;AL= 00H DS= 2000H
MOV SS,AX ;SS= 2000H AX= 2000H
MOV BX,2030H ;BH= 20H BL= 30H
MOV SI,BX ;SI= 2030H
MOV DI,3040H ;DI= 3040H
MOV SI,DI ;SI= 3040H
MOV SP,50FFH ;SP= 50FFH
MOV DX,SP ;DH= 50H DL= FFH
MOV CL,25 ;CL= 19H
MOV BL,CL ;CL= 19H BL= 19H
MOV AH,0F0H ;AH= F0H
MOV CH,AH ;CH= F0H
MOV BYTE PTR[DI],64 ;(DI)= 40H
MOV WORD PTR[SI],256 ;(SI)= 00H (SI+1)= 01H
MOV DL,[SI+1] ;DL= 01H
MOV DH,1+[SI] ;DH= 00H
MOV AL,1[SI] ;AL= 01H
MOV WORD PTR[BX][SI],34 ;(BX+SI)= 22H (BX+SI+1)= 00H
MOV [BX+SI+4],BL ;(BX+SI+4)= 19H
MOV BP,2[BX+DI] ;BP= 00H
MOV [BP],AL ;(BP)= 01H
MOV AX,[BP][DI] ;AX= 0100H
MOV BL,AL ;BL= 00H
MOV ES,BX ;ES= 2000H
PUSH BX ;SP= 50FDH (SP,SP+1)= 2000H
PUSH DI ;SP= 50FBH (SP,SP+1)= F019H
POP CX ;SP= 50FDH CX= 3040H
POP DX ;SP= 50FFH DX= 2000H
XCHG AX,BP ;AX= 0000H BP= 0100H
XCHG DH,BL ;DH= 00H BL= 20H
LAHF ;FLAG= 0002H AH= 02H
SAHF ;FLAG= 0002H AH= 02H
PUSHF ;SP= 50FDH (SP,SP+1)= 0002H
POPF ;SP= 50FFH FLAG= 0002H
3.设DS=2000H,ES=2100H,SS=1500H,SI=00A0H。
BX=0100H,BP=0010H,数据段中变量名V AL的偏移地址值是0050H,指出下列源操作数字段的寻址方式是什么?其物理地址值是多少?
⑴MOV AX,0ABH
⑵MOV AX,BX
⑶MOV AX,[100H]
⑷MOV AX,V AL
⑸MOV AX,[BX]
⑹MOV AX,ES:[BX]
⑺MOV AX,[BP]
⑻MOV AX,[SI]
⑼MOV AX,[BX+10]
⑽MOV AX,V AL[BX]
⑾MOV AX,[BX][SI]
⑿MOV AX,V AL[BX][SI]
解:(1)立即寻址方式
(2)寄存器寻址方式
(3)直接寻址方式;其物理地址为:20100H
(4)直接寻址方式;其物理地址为:20050H
(5)寄存器间接寻址方式;其物理地址为:20100H
(6)寄存器间接寻址方式;其物理地址为:21100H
(7)寄存器间接寻址方式;其物理地址为:15010H
(8)寄存器间接寻址方式;其物理地址为:200A0H
(9)寄存器相对寻址方式;其物理地址为:20110H
(10)寄存器相对寻址方式;其物理地址为:20150H
(11)基址变址寻址方式;其物理地址为:201A0H
(12)相对基址变址寻址方式;其物理地址为:201F0H
4.如果TABEL为数据段中0032H单元的符号名,其中存放的内容为1234H,试问以下两条指令有什么区别?指令执行后,AX寄存器的内容各是什么?。
MOV AX,TABEL
LEA AX,TABEL
解:指令MOV AX,TABEL 是取出地址为TABEL的内存单元内容,执行结束后AX=1234H 指令LEA AX,TABEL 是取出符号地址的数值,执行结束后AX=0032H.
5.已知堆栈段寄存器SS的内容是0FFA0H,堆栈指针寄存器SP的内容是00B0H,先执行两条把8057H和0F79H分别进栈的PUSH指令,再执行一条POP指令。
试画出堆栈区和SP的内容变化过程示意图(标出存储单元的物理地址)。
解:
6.求出以下各十六进制数与十六进制数62A0H之和,并根据结果设置标志位SF、ZF、CF 和OF的值。
⑴1234H ⑵4321H ⑶CFA0H ⑷9D60H
解:(1)结果74DEH:SF=0;ZF=0;CF=0;OF=0。
(2)结果A5C1EH:SF=1;ZF=0;CF=1;OF=1。
(3)结果3240H:SF=0;ZF=0;CF=1;OF=0。
(4)结果0000H:SF=0;ZF=1;CF=1;OF=0。
7.求出以下各十六进制数与十六进制数4AE0H的差值,并根据结果设置标志位SF、ZF、CF和OF的值。
⑴1234H ⑵5D90H ⑶9090H ⑷EA04H
解:(1)结果:C754H;SF=1;ZF=0;CF=1;OF=0。
(2)结果:12B0H;SF=0;ZF=0;CF=0;OF=0。
(3)结果:45B0H;SF=0;ZF=0;CF=0;OF=0。
(4)结果:9F24H;SF=1;ZF=0;CF=0;OF=0。
8.假设BX=0E3H,变量V ALUE中存放的内容为79H,确定下列各条指令单独执行后的结果。
⑴XOR BX,V ALUE ⑵AND BX,V ALUE ⑶OR BX,V ALUE
⑷XOR BX,0FFH ⑸AND BX,0 ⑹TEST BX,01H
解:(1)BX=9AH
(2)BX=61H
(3)BX=FBH
(4)BX=1CH
(5)BX=00H
(6)BX=E3H
9.试写出执行下列指令序列后BX寄存器的内容。
执行前BX=6D16H。
MOV CL,7
SHR BX,CL
解:执行后BX=00DAH
10. 试分析以下程序段所完成的功能。
MOV CL,04
SHL DX,CL
MOV BL,AH
SHL AX,CL
SHR BL,CL
OR DL,BL
解:程序段完成由DX和AX共同组成的32位数向左移动4位。
11.写一程序段:比较两个5字节的字符串OLDS和NEWS,如果OLDS字符串不同于NEWS 字符串,则执行NEW_LESS;否则顺序执行程序。
解:参考程序:MOV AX,DS
MOV ES,AX
MOV CX,0005H
LEA SI,OLDS
LEA DI,NEAS
CLD
REPZ SCASB
JNZ NEW_LESS
…
12.假定AX和BX中内容为带符号数,CX和DX中的内容为无符号数,请用比较指令和条件转移指令实现以下判断:
⑴若DX的内容超过CX的内容,则转去执行EXCEED;
⑵若BX的内容大于AX的内容,则转去执行EXCEED;
⑶若CX的内容等于0,则转去执行ZERO;
⑷若BX与AX的内容相比较是否产生溢出?若溢出则转OVERFLOW;
⑸若BX的内容小于等于AX的内容,则转EQ_SMA;
⑹若DX的内容低于等于CX的内容,则转EQ_SMA。
解:(1)CMP DX,CX
JA EXCEED
(2) CMP BX, AX
JG EXCEED
(3) CMP CX, 0
JZ ZERO
(4) CMP BX, AX
JO OVERFLOW
(5) CMP BX, AX
JLE EQ_SMA
(6) CMP DX, CX
JBE EQ_SMA
13.假设X和X+2单元的内容为双精度数p,Y和Y+2单元的内容为双精度数q(X和Y 为低位字),试说明下列程序段做什么工作?
MOV DX,X+2
MOV AX,X
ADD AX,X
ADC DX,X+2
CMP DX,Y+2
JL L2
JG L1
CMP AX,Y
JBE L2
L1:MOV AX,1
JMP SHORT EXIT
L2:MOV AX,2
EXIT:INT20H
解:当2p>q时,AX的内容置成1;当2p<=q时,AX的内容置成2。
14.要求测试STATUS中的一个字节,如果第1、3、5位均为1则转移到ROUTINE_1;如果此三位中有两位为1则转移到ROUTINE_2;如果此三位只有一位为1则转移到ROUTINE_3;如果此3位全为0则转移到ROUTINE_4。
试画出流程图,并编制相应程序段。
解:流程图如下:
愿陛下亲之、信之,则汉室之隆,可计日而待也。
臣本布衣,躬耕于南阳,苟全性命于乱世,不求闻达于诸侯。
先帝不以臣卑鄙,猥自枉屈,三顾臣于草庐之中,咨臣以当世之事,由是感激,遂许先帝以驱驰。
后值倾覆,受任于败军之际,奉命于危难之间,尔来二十有一年矣。
先帝知臣谨慎,故临崩寄臣以大事也。
受命以来,夙夜忧叹,恐托付不效,以伤先帝之明;故五月渡泸,深入不毛。
今南方已定,兵甲已足,当奖率三军,北定中原,庶竭驽钝,攘除奸凶,兴复汉室,还于旧都。
此臣所以报先帝而忠陛下之职分也。
至于斟酌损益,进尽忠言,则攸之、祎、允之任也。
愿陛下托臣以讨贼兴复之效,不效,则治臣之罪,以告先帝之灵。
若无兴德之言,则责攸之、祎、允等之慢,以彰其咎;陛下亦宜自谋,以咨诹善道,察纳雅言,深追先帝遗诏。
臣不胜受恩感激。
今当远离,临表涕零,不知所言。