如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
1.试分析下列程序段:ADDAX,BXJNCL2SUBAX,BXJNCL3JMPSHORTL5L2:……L3:……L5:……如果AX、BX的内容给定如下:AXBX(1)14C6H80DCH(2)B568H54B7H问该程序在上述情况下执行后,程序转向何处?解:(1)转向L2因为(AX)+(BX)没有进位。(2)转向L5因为(AX)+(BX)=0A1FH,有进位。然后(AX)-(BX)有进位。2.编写程序,使用三种以上的方法,将存储器中DS:2000H开始的地址单元中的100字节数据复制到ES:3000H开始的存储器地址单元中。解:DATASEGMENTORG2000HD1DB100DUP(?)DATAENDSEXTRASEGMENTORG3000HD2DB100DUP(0)EXTRAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,ES:EXTRASTART:MOVAX,DATAMOVDS,AXMOVAX,EXTRAMOVES,AXLEASI,D1LEADI,ES:D2MOVCX,100;L1:MOVAL,[SI];MOVES:[DI],AL;INCSI;INCDI;LOOPL1REPMOVSBHLT(1)利用通用传送指令MOVMOVSI,2000HMOVDI,3000HMOVCX,100AA:MOVAL,[SI]MOV[DI],ALINCSIINCDILOOPAAHLT(2)利用交换指令XCHGMOVSI,2000HMOVDI,3000HMOVCX,100AA:MOVAL,[SI]XCHG[DI],ALINCSIINCDILOOPAAHLT(3)利用换码指令XLATMOVBX,2000HMOVDI,3000HMOVCX,100AA:XORAL,ALXLATMOV[DI],ALINCBXINCDILOOPAAHLT(4)利用堆栈实现数据传送MOVSI,2000HMOVDI,3000HMOVCX,50AA:PUSH[SI]POP[DI]INCSIINCSIINCDIINCDILOOPAAHLT(5)利用串操作指令REPMOVSBMOVSI,2000HMOVDI,3000HMOVCX,100CLD;DF=0,SI、DI自动+1REPMOVSBHLT3.在DA1开始的4个单元中存放着一个32位数,求出其中的“1”的个数,并存入COUNT单元中。解:DATASEGMENTDA1DD12345678HCOUNTDB00HDATAENDSCODESENGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVSI,OFFSETDA1MOVBL,00HMOVBH,8MOVCX,4A2:MOVAL,BYTEPTR[SI]AA:RORAL,1JNCL1INCBLL1:DECBHJNZAAINCSILOOPA2MOVCOUNT,BLMOVAH,4CHINT21HCODEENDSENDSTARTDATASEGMENTDATA1DBFEH,86H,7CH,35HCOUNTDB00HDATAENDSSTACKSEGMENTDB100DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AXMOVAX,STACKMOVSI,OFFSETDATA1MOVBX,[SI]MOVDX,[SI+2]MOVCX,32XORAL,ALLP1:RCRDXRCRBXJNCLP2INCALLP2:LOOPLP1MOVCOUNT,ALMOVAH,4CHINT21HHLTP2051.下列变量各占多少字节?A1DW23H,5876H4字节A