资源描述:
《汇编语言程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第五章汇编语言程序设计1.从4000H单元开始定义数据段如下,请画出所定义存储器的分配图。BUFSEGMENTDAlDW3456HDA2DB2DUP(7,8)BUFENDS答:存储器的分配图2.对于习题1的定义,请说明下列每条指令执行后的结果。1、MOVAX,SEGDAl2、MOVAX,SEGDA23、MOVBX,OFFSETDAl4、MOVBX,OFFSETDA25、MOVCX,TYPEDAl6、MOVCX,TYPEDA27、MOVDX,LENGTHDAl8、MOVDX,LENGTHDA29、MOVAX,SIZEDAl‘10、MOVAX,
2、SIZEDA2答:1、(AX)=(DS)2、(AX)=(DS)+23、(BX)=4000H4、(BX)=4002H5、(CX)=26、(CX)=17、(DX)=28、(DX)=49、(AX)=210、(AX)=4 3.已知数据定义如下,请计算变量PL的值是多少?DATADB‘AB’DATAlDB10DUP(?)PLEQU$-DATA答:PL=DATA+12-DATA=12 4.已知A=25、B=15、C=4,请计算下列表达式的值。(1)A×50+B(2)AMODC+B(3)(A+4)×B-3(4)B/3MOD4(5)ALEB(6)AXOR
3、50答:(1)A×50+B=25×50+15=1250+15=12515(2)AMODC+B=25MOD4+15=1+15=16(3)(A+4)×B-3=(25+4)×15-3=1500-3=1497(4)B/3MOD4=15/3MOD4=5MOD4=1(5)ALEB=25LE15=0(6)AXOR50=25XOR50=43 5.已知内存DATA单元存放一个字数据,请统计其中含有0的个数,并送人RESULT单元的程序。答:程序如下:DATA1SEGMENTDATADW1234hCOUNTDB0DATA1ENDSCODESEGMENTASS
4、UMECS:CODE,DS:DATA1START:MOVAX,DATA1MOVDS,AXMOVAX,DATAMOVCX,16LOP:TESTAX,8000HJNZNEXTINCRESULTNEXT:ROLAX,1LOOPLOPINT3CODEENDSENDSTART6.已知从数据段TAB单元开始,顺序存放十六进制数0~F的ASCII码,寄存器AL中的高四位二进制数是0、低四位是1。请设计程序:用查表指令(XLAT)将寄存器AL中低四位的十六进制数转换为ASCII码。答:DATASEGMENTTABDB'0123456789ABCDEF'DA
5、TAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEABX,TABXLATINT3CODEENDSENDSTART7.已知从数据段BUF单元开始存放一个三字节的带符号数,请设计对其求补的程序。答:DATASEGMENTBUFDB97H,87H,9AHRESDB3DUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLEABX,BUFLEASI,RESMOVCX,3LOP:MOVAL
6、,[BX]XORAL,0FFHMOV[SI],ALLOOPLOPCLCLEASI,RESMOVCX,3LOP1:MOVAL,[SI]ADCAL,0MOV[SI],ALLOOPLOP1INT3CODEENDSENDSTART 8.已知从数据段BUF单元开始存放字节型的带符号数X和Y,请设计计算Y=6X+8的程序。答:DATASEGMENTBUFDB97H,87H;X=97H和Y=87HDATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAH,0MOVAL,BUF
7、SHLAX,1MOVBX,AXSHLAX,1ADDAX,BXADDAX,8MOVBUF+1,ALMOVBUF+2,AHINT3CODEENDSENDSTART 9.已知X、Y是字节型的无符号数,请设计程序计算:X/4(0≤x<10)Y=X-10(10≤X<20)答:程序如下:DATASEGMENTXDB84HYDB0DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,XCMPAL,10JAENEXTSHRAL,1SHRAL,1JMPENNEXT:SUBA
8、L,10EN:MOVY,ALINT3CODEENDS10.已知从数据段BUF单元开始存放15个字节型数据,请设计程序将其中负数和零分别送往MINUS和ZERO开始的存储器单元。答