如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第4章汇编语言程序设计习题解答请打开书P176习题4.1习题4.2习题4.3习题4.4习题4.5习题4.6习题4.7习题4.8习题4.9习题4.10习题4.11习题4.12习题4.13LOP:LODSBXCHGAL,[DI]XCHGSI,DIDECDISTOSBXCHGSI,DIINCDILOOPLOP习题4.14习题4.15习题4.16习题4.17习题4.18习题4.19DATASEGMENTBCDDBXXHASCDB?,?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVCL,4MOVAL,BCD;取BCD码数SHRAL,CL;转换高位ADDAL,30HMOVASC,ALMOVAL,BCDANDAL,0FH;转换低位ADDAL,30HMOVASC+1,ALMOVAH,4CHINT21HCODEENDSENDSTART习题4.20CODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX;给数据段段段地址赋值MOVCX,N;设置循环次数LEASI,A1;SI指向源字符串LEADI,A2;DI指向目的字符串MOVDL,0;小写字母计数器清零L1:MOVAL,[SI];当前字符同小写字母‘a’比较CMPAL,61HJLL2CMPAL,7AH;当前字符同小写字母‘z’比较JGL2MOV[DI],AL;当前字符为小写字母则将其移动到A2INCDIINCDL并将计数器DL加1L2:INCSI;SI指向源串中的下一个字符LOOPL1MOVSL,DL;将DL的值写入到SL中MOVAH,4CH;返回系统INT21HCODEENDSENDSTART注意:在8086汇编中,寄存器间接寻址、寄存器相对寻址、基址变址寻址和相对基址变址寻址中只能使用BX、BP、SI和DI这4个寄存器,不能使用AX、DX等其它寄存器。这一点在编写汇编程序的时候需要注意。习题4.21DATASEGMENTDATDBXXHSQRTABDB0,1,4,9,…,81SQRDB?DATAENDSSTACKSEGMENTPARASTACKDW20HDUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTART:MOVAX,DATAMOVDS,AX┇CALLDTOS┇MOVAH,4CHINT21HDTOSPROCPUSHAXPUSHBXLEABX,SQRTABMOVAL,DATTESTAL,80H;判断AL的正负JENEXTNEGALNEXT:XLATSQRTAB;AL←(BX+AL)MOVSQR,ALPOPBXPOPAXRETDTOSENDPCODEENDSENDSRART习题4.22MOVBL,0MOVCX3LOP:MOVAL,STATUSANDAL,01HADDBL,ALMOVAL,STATUSSHRAL,2LOOPLOPMOVAL,BLCMPAL,01HJEROUT2CMPAL,03HJEROUT3CMPBL,0HJEROUT4习题4.23LEABX,STRINGMOVCX,80LOP:MOVAL,[BX]CMPAL,‘$’JEDONECMPAL,20HJEPOSITIONINCBXLOOPLOPDONE:MOVPOST,0FFHHLTPOSITION:SUBBX,OFFSETSTRINGMOVPOST,BLHLT