微机原理与接口技术第三章课后答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第三章参考答案1.按照题目中提出的要求,写出能达到要求的一条(或几条)汇编形式的指令:⑴将一个立即数送入寄存器BX;⑵将一个立即数送入段寄存器DS;⑶将变址寄存器DI的内容送入一个存储单元中;⑷从存储单元中取一个数送到段寄存器ES中;⑸将立即数0ABH与AL相加,结果送回AL中;⑹把BX与CX寄存器内容相加,结果送入BX;⑺用寄存器间接寻址方式,实现一个立即数与存储单元内容相加,结果放回存储器。解:(1)MOVBX,1234H(2)MOVAX,1234HMOVDS,AX(3)MOV[BX],DI(4)MOVES,[BX](5)ADDAL,0ABH(6)ADDBX,CX(7)MOVAX,[BX]ADDAX,1234HMOV[BX],AX2.执行下面程序,完成指令后的填空:MOVAX,2000H;AH=20HMOVDS,AX;AL=00HDS=2000HMOVSS,AX;SS=2000HAX=2000HMOVBX,2030H;BH=20HBL=30HMOVSI,BX;SI=2030HMOVDI,3040H;DI=3040HMOVSI,DI;SI=3040HMOVSP,50FFH;SP=50FFHMOVDX,SP;DH=50HDL=FFHMOVCL,25;CL=19HMOVBL,CL;CL=19HBL=19HMOVAH,0F0H;AH=F0HMOVCH,AH;CH=F0HMOVBYTEPTR[DI],64;(DI)=40HMOVWORDPTR[SI],256;(SI)=00H(SI+1)=01HMOVDL,[SI+1];DL=01HMOVDH,1+[SI];DH=00HMOVAL,1[SI];AL=01HMOVWORDPTR[BX][SI],34;(BX+SI)=22H(BX+SI+1)=00HMOV[BX+SI+4],BL;(BX+SI+4)=19HMOVBP,2[BX+DI];BP=00HMOV[BP],AL;(BP)=01HMOVAX,[BP][DI];AX=0100HMOVBL,AL;BL=00HMOVES,BX;ES=2000HPUSHBX;SP=50FDH(SP,SP+1)=2000HPUSHDI;SP=50FBH(SP,SP+1)=F019HPOPCX;SP=50FDHCX=3040HPOPDX;SP=50FFHDX=2000HXCHGAX,BP;AX=0000HBP=0100HXCHGDH,BL;DH=00HBL=20HLAHF;FLAG=0002HAH=02HSAHF;FLAG=0002HAH=02HPUSHF;SP=50FDH(SP,SP+1)=0002HPOPF;SP=50FFHFLAG=0002H3.设DS=2000H,ES=2100H,SS=1500H,SI=00A0H。BX=0100H,BP=0010H,数据段中变量名VAL的偏移地址值是0050H,指出下列源操作数字段的寻址方式是什么?其物理地址值是多少?⑴MOVAX,0ABH⑵MOVAX,BX⑶MOVAX,[100H]⑷MOVAX,VAL⑸MOVAX,[BX]⑹MOVAX,ES:[BX]⑺MOVAX,[BP]⑻MOVAX,[SI]⑼MOVAX,[BX+10]⑽MOVAX,VAL[BX]⑾MOVAX,[BX][SI]⑿MOVAX,VAL[BX][SI]解:(1)立即寻址方式(2)寄存器寻址方式(3)直接寻址方式;其物理地址为:20100H(4)直接寻址方式;其物理地址为:20050H(5)寄存器间接寻址方式;其物理地址为:20100H(6)寄存器间接寻址方式;其物理地址为:21100H(7)寄存器间接寻址方式;其物理地址为:15010H(8)寄存器间接寻址方式;其物理地址为:200A0H(9)寄存器相对寻址方式;其物理地址为:20110H(10)寄存器相对寻址方式;其物理地址为:20150H(11)基址变址寻址方式;其物理地址为:201A0H(12)相对基址变址寻址方式;其物理地址为:201F0H4.如果TABEL为数据段中0032H单元的符号名,其中存放的内容为1234H,试问以下两条指令有什么区别?指令执行后,AX寄存器的内容各是什么?。MOVAX,TABELLEAAX,TABEL解:指令MOVAX,TABEL是取出地址为TABEL的内存单元内容,执行结束后AX=1234H指令LEAAX,TABEL是取出符号地址的数值,执行结束后AX=0032H.5.已知堆栈段寄存器SS的内容是0FFA0H,堆栈指针寄存器SP的内容是00B0H,先执行两条把8057H和0F79H分别进栈的PUSH指令,再执行一条POP指令。试画出堆栈区和SP的内容变化过程示意图(标出存储单元的物理地址)。解:FFAAEHFFAACH80H57H0FH79H最后指令位置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,变量VALUE中存放的内容为79H,确定下列各条指令单独执行后的结果。⑴XORBX,VALUE⑵ANDBX,VALUE⑶ORBX,VALUE⑷XORBX,0FFH⑸ANDBX,0⑹TESTBX,01H解:(1)BX=9AH(2)BX=61H(3)BX=FBH(4)BX=1CH(5)BX=00H(6)BX=E3H9.试写出执行下列指令序列后BX寄存器的内容。执行前BX=6D16H。MOVCL,7SHRBX,CL解:执行后BX=00DAH10.试分析以下程序段所完成的功能。MOVCL,04SHLDX,CLMOVBL,AHSHLAX,CLSHRBL,CLORDL,BL解:程序段完成由DX和AX共同组成的32位数向左移动4位。11.写一程序段:比较两个5字节的字符串OLDS和NEWS,如果OLDS字符串不同于NEWS字符串,则执行NEW_LESS;否则顺序执行程序。解:参考程序:MOVAX,DSMOVES,AXMOVCX,0005HLEASI,OLDSLEADI,NEASCLDREPZSCASBJNZNEW_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)CMPDX,CXJAEXCEED(2)CMPBX,AXJGEXCEED(3)CMPCX,0JZZERO(4)CMPBX,AXJOOVERFLOW(5)CMPBX,AXJLEEQ_SMA(6)CMPDX,CXJBEEQ_SMA13.假设X和X+2单元的内容为双精度数p,Y和Y+2单元的内容为双精度数q(X和Y为低位字),试说明下列程序段做什么工作?MOVDX,X+2MOVAX,XADDAX,XADCDX,X+2CMPDX,Y+2JLL2JGL1CMPAX,YJBEL2L1:MOVAX,1JMPSHORTEXITL2:MOVAX,2EXIT:INT20H解:当2pq时,AX的内容置成1;当2p=q时,AX的内容置成2。14.要求测试STATUS中的一个字节,如果第1、3、5位均为1则转移到ROUTINE_1;如果此三位中有两位为1则转移到ROUTINE_2;如果此三位只有一位为1则转移到ROUTINE_3;如果此3位全为0则转移到ROUTINE_4。试画出流程图,并编制相应程序段。解:流程图如下:AL←取字节内容AL与2AH相与转ROUTINE_3ZF=1吗?Y转ROUTINE_4AL与2AH相等吗?Y转ROUTINE_1PF=1吗?Y转ROUTINE_2MOVAL,STATUSANDAL,2AHJZROUTINE_4CMPAL,2AHJZROUTINE_1JPROUTINE_2ROUTINE_3:

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功