资源描述:
《mcs_8086习题3_答案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、习题3答案:1.将2个32位无符号数DAT1和DAT2相乘,结果保存在64位无符号数中,请编写程序段。DAT1DD12345678HDAT2DD9ABCDEFHRESULTDQ0MOVAX,wordptrDAT2;(DAT1)L*(DAT2)LMULwordptrDAT1MOVwordptrRESULT,AXMOVwordptrRESULT,DX;保存结果MOVAX,wordptrDAT2MULwordptrDAT1+2;(DAT1)H*(DAT2)LADDwordptrRESULT+2,AXAD
2、CwordptrRESULT+4,0MOVAX,wordptrDAT2+2;(DAT1)L*(DAT2)HMULwordptrDAT1ADDwordptrRESULT+2,AXADCwordptrRESULT+4,DXADCwordptrRESULT+6,0MOVAX,wordptrDAT2+2;(DAT1)H*(DAT2)HMULwordptrDAT1+2ADDwordptrRESULT+4,AXADCwordptrRESULT+6,DX2.有2个4字节无符号数分别存放在扩展段2000H和300
3、0H开始的单元中,低位在前,高位在后,将两数相加,结果存放在数据段2000H开始的单元中,请编写程序段完成以上功能;MOVAX,wordptrES:[2000H]ADDAX,wordptrES:[3000H]MOV[2000H],AXMOVAX,wordptrES:[2002H]ADCAX,wordptrES:[3002H]MOV[2002H],AX1.8086系统中,请说明下列指令的源操作数的寻址方式是什么?1)MOVAX,1234H立即数寻址2)MOVAX,[1234H]直接寻址3)MOVAX
4、,[BX]寄存器间接寻址4)MOVAX,1234H[BX+SI]相对基址变址寻址5)MOVSB数据串寻址6)INAL,DXI/O端口间接寻址2.请在下表中画出下列数据段以十六进制表示的各单元值(表格中每个单元表示一个字节),并写出变量var1,var2,var3的偏移地址和cnt的值。FEH0030H低地址高地址dataSEGMENTpara41HORG30H32Hvar1DB-2,‘A’,2dup(‘23’)32H33Hvar2DW-1FFH33HcntEQU$-var1FFHvar3DWvar
5、200H36HdataENDSvar1:0030Hvar2:0036Hvar3:0038Hcnt=83.以下程序实现将变量var进行var*10+600的操作,并将计算结果保存在变量result中,当程序执行到地址M5的时候,请在以下表格中画出当前堆栈指针的位置和堆栈里的内容(程序断点可以用标号,在堆栈中可用寄存器名代表保存的内容,SS的内容不用指定,表格的每个单元表示一个字)。(6分)datasegmentvardw1000resultdd?dataendsssegsegmentstackdb1
6、00dup(?)ssegendscodesegmentassumecs:code,ds:data,ss:ss_segmainprocfar高地址低地址DS0M2BPSIBXpushdsmovax,0pushaxmovax,datamovds,axmovax,varM1:callCaculateM2:dw10M3:dw600M4:leabx,resultmov[bx],axmov[bx+2],dxretmainendpCaculateprocpushbpmovbp,sppushsipushbxmov
7、bx,[bp+2]movsi,cs:[bx]mulsiM5:addax,cs:2[bx]adcdx,0addbx,4mov[bp+2],bxpopbxpopsipopbpretCaculateendpcodeendsendmain1.问答题1)若AL=81H,则执行指令CBW后AH的内容为多少?AH=0FFH2)若BL=BEH,执行下列指令序列,则每执行一步,BL和CF的值为多少?SHLBL,1;BL=__7CH___,CF=___1___MOVCL,2SHRBL,CL;BL=__1FH___,C
8、F=___0___ORBL,80SARBL,1;BL=__2FH___,CF=___1___RORBL,CL;BL=__CBH___,CF=___1___INCCLRCLBL,CL;BL=__5FH___,CF=___0___3)什么是短跳转、近跳转、远跳转?短跳转:段内直接跳转,偏移量为-128~127近跳转:段内直接跳转,偏移量为-32768~32767远跳转:段间直接跳转4)若当前SP=1000H,CS=B000H,IP=0100H,且当前FLAG=2345H,则执行指令IN