资源描述:
《计算机原理MCS8086习题3.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、习题3:1.编写程序段,将2个32位无符号数DAT1和DAT2相乘,结果保存在64位无符号数Result中;2.有2个4字节无符号数分别存放在扩展段2000H和3000H开始的单元中,低位在前,高位在后,将两数相加,结果存放在数据段2000H开始的单元中,请编写程序段完成以上功能;3.8086系统中,请说明下列指令的源操作数的寻址方式是什么?1)MOVAX,1234H2)MOVAX,[1234H]3)MOVAX,[BX]4)MOVAX,1234H[BX+SI]5)MOVSB6)INAL,DX4.请在下表中画出下列数据段以十六进制表示的各单元值(表格中每个单元
2、表示一个字节),并写出变量var1,var2,var3的偏移地址和cnt的值。0030H低地址高地址dataSEGMENTparaORG30Hvar1DB-2,‘A’,2dup(‘23’)var2DW-1cntEQU$-var1var3DWvar2dataENDS5.以下程序实现将变量var进行var*10+600的操作,并将计算结果保存在变量result中,当程序执行到地址M5的时候,请在以下表格中画出当前堆栈指针的位置和堆栈里的内容(程序断点可以用标号,在堆栈中可用寄存器名代表保存的内容,SS的内容不用指定,表格的每个单元表示一个字)。(6分)高地址低地
3、址datasegmentvardw1000resultdd?dataendsssegsegmentstackdb100dup(?)ssegendscodesegmentassumecs:code,ds:data,ss:ss_segmainprocfarpushdsmovax,0pushaxmovax,datamovds,axmovax,varM1:callCaculateM2:dw10M3:dw600M4:leabx,resultmov[bx],axmov[bx+2],dxretmainendpCaculateprocpushbpmovbp,sppushsi
4、pushbxmovbx,[bp+2]movsi,cs:[bx]mulsiM5:addax,cs:2[bx]adcdx,0addbx,4mov[bp+2],bxpopbxpopsipopbpretCaculateendpcodeendsendmain1.问答题1)若AL=81H,则执行指令CBW后AH的内容为多少?2)若BL=BEH,执行下列指令序列,则每执行一步,BL和CF的值为多少?SHLBL,1;BL=_____,CF=______MOVCL,2SHRBL,CL;BL=_____,CF=______ORBL,80SARBL,1;BL=_____,CF=_
5、_____RORBL,CL;BL=_____,CF=______INCCLRCLBL,CLBL=_____,CF=______3)什么是短跳转、近跳转、远跳转?4)若当前SP=1000H,CS=B000H,IP=0100H,且当前FLAG=2345H,则执行指令INT21H以后,SP的值变为多少?堆栈段中6个存储单元0FFFH、0FFEH、0FFDH、0FFCH、0FFBH、0FFAH的值分别是多少?2.请写出程序段实现下列功能例如:从160H端口读取1个字节MOVDX,160HINAL,DX1)将一个8位数20H写入到地址为20H的端口;2)若AL=56H
6、,BL=57H,将这两个压缩格式BCD码相加并将结果保存到存储单元[2000H]中;1)求数据段偏移地址为1000H开始的一个字符串的长度,字符串以ASCII码0为结束符,长度要求包括结束符;(提示:初始化AL=0CX=0FFFFH,然后使用REPNZSCASB命令,最后根据CX的值计算字符串长度)1.请判断以下8086汇编指令是否正确,正确则在指令前打√,错误则打×()1)MOVDS,1000H()18)LEA[1000H],MSG()2)MOVDX,1000H()19)LDSES,MSG()3)MOVIP,AX()20)LESDX,MSG()4)MOV[
7、1000H],[SI]()21)ADDDS,1000H()5)PUSH[SI]()22)ADCDX,[DI]()6)PUSHAL()23)SUB[BX],1000H()7)PUSH200H()24)SUB[BX+BP],1000H()8)POPCS()25)IMUL100H()9)POPAX()26)DIVwordptr100H[BP]()10)XCHGAX,DS()27)ANDBP,1001H()11)XCHGAX,1000H[SI+DI]()28)SHL[BX],1()12)INAX,[SI]()29)RORAX,4()13)INBL,80H()30)R
8、CLwordptr[BX],CL()14)INAX,