资源描述:
《微机原理程序习题.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、4.1请分别用DB、DW、DD伪指令写出在DATA开始的连续8个单元中依次存放数据11H、22H、33H、44H、55H、66H、77H、88H的数据定义语句。11HDATA22H33H44H55H66H77H88H解:DB、DW、DD伪指令分别表示定义的数据为字节型、字类型及双字类型。其定义形式为:DATADB11H,22H,33H,44H,55H,66H,77H,88HDATADW2211H,4433H,6655H,8877HDATADD44332211H,88776655H4.2若程序的数据段定义如下,写出各指令语句独立执行后的
2、结果。DSEGSEGMENTDATA1DB10H,20H,30HDATA2DW10DUP(?>StringDB‘123’DSEGENDS(1)MOVAL,DATA1(2)MOVBX,offsetDATA2(3)LEASI,StringADDDI,SI解:先取变量String的偏移地址送寄存器SI,之后将SI的内容与DI的内容相加并将结果送DI。指令执行后,SI=0017H,DI=DI+0017Hb5E2RGbCAP4.3试编写求两个无符号数双字长数之和的程序。两数分别在MEM1和MEM2单元中,其和放在SUM单元。p1EanqFDPw
3、DSEGSEGMENTMEM1DW1122H,3344HMEM1DW5566H,7788HSUMDW2DUP(?>DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGSTART:MOVAX,DSEGMOVDS,AXLEA BX,MEM1LEA SI,MEM2LEA DI,SUM5/5MOVCL,2CLCAGAIN:MOVAX,[BX]ADCAX,[SI]MOV[DI],AXADDBX,2ADDSI,2ADDDI,2LOOP AGAINMOVAX,4C00hINT21hCSEGENDSENDSTART4.4试
4、编写程序,测试AL寄存器的第4位(B4>是否为零?如:TESTAL,10HJZNEXT….NEXT:…..或者:MOVCL,4SHLAL,CLJNCNEXT……NEXT:…..4.5试编写程序,将BUFFER中的一个8位二进制数转化为ASCII码,并按位数高低顺序存放ANSWER开始的内存单元中。DXDiTa9E3d解:DSEGSEGMENTBUFFERDB?ANSWERDB3DUP(?>DSEGENDSCSEG SEGMENTASSUMECS:CSEG,DS:DSEGSTART:MOVAX,DSEGMOVDS,AXMOVCX,3LE
5、A DL,ANSWERXORAX,AXMOVAL,BUFFERMOVBL,0AHAGAIN:DIVBLADDAH,30HMOV[DI],AH5/5INCDIANDAL,ALJZSTOMOVAH,0LOOPAGAINSTO:MOVAX,4C00HINT21HCSEGENDSENDSTART4.6假设数据项定义如下:DATA1DB‘HELLO!GOODMORNING’DATA2DB20DUP(?>用串操作指令编写程序段,使其分别完成一下功能。(1)从左到右将DATA1中的字符串传送到DATA2中;(2)传送完后,比较DATA1和DATA2
6、中的内容是否相同;(3)把DATA1中的第3个字节和第四个字节装入AX。(4)将AX的内容存入DATA2+5开始的字节单元中;解:<1)MOVAX,SEGDATA1MOVDS,AXMOVAX,SEGDATA2MOVES,AXLEASI,DATA1LEADI,DATA2MOVCX,20CLDREPMOVSB(2>EASI,DATA1LEADI,DATA2MOVCX,20CLDREPECMPSB<3)LEA SI,DATA1ADDSI,2LODSW(4>LEADI,DATA2TABLE0AHADDDI,500HMOVCX,714HCLD0
7、0HREPSTOSW1EH4.7执行下列指令后,AX寄存器中的内容是多少?00HTABLEDW10,20,30,40,5032HENTRYDW300H……5/5ENTRY03HMOVBX,OffsetTABLE00HADDBX,ENTRYMOVAX,[BX]解:AX=1E00H.4.8画图说明下列语句分配的存储器空间及初始化的数据值。<1)DATA1DB‘BYTE’,12,12H,2DUP(0,?,3>(2>DATA2DW4DUP(0,1,2>,?,-5,256H00H00H01H00H02H00H00H00H01H00H02H00H
8、DATA2高地址方向00H00H01H00H02H00H00H00H01H00H02H00H高地址方向DUP(0,1,2>DUP(0,1,2>DUP(0,1,2>DUP(0,1,2>??FBHFFH56H02H42H59