资源描述:
《《IBM-PC汇编语言程序设计第二版》部分习题答案(第5章)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、5.1试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来.modelsmall.stack100H.codemainprocfarStart: pushdx movax,0 pushax movah,01H int21H cmpal,61H jllop1 cmpal,7BH jgelop1 subal,20H movdl,al lop1:movah,2 int21H retEndstart5.2编写一个程序,从键盘接受一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符..modelsmall.386.codeMAINPROCFARstart
2、: pushds subax,ax pushax input: movah,7H int21Hcmpe: cmpal,20H JE exit cmpal,61H JL input cmpal,7AH JG inputprint: subal,01H movdl,al movah,02H int21H addal,01H movdl,al movah,02H int21H addal,01H movdl,al movah,02H int21H ;输出换行回车 movdl,0AH movah,02H int21H jmpinputexit: retMAINENDPENDstart
3、5.3将AX寄存器中的16位数分成4组,每组4位,然后把这四组数分别放在AL、BL、CL、DL中。.modelsmall.dataxDB4dup(?).stack100H.codeMAINPROCFARstart: pushds andax,00H pushax movax,1234H movcx,04H movsi,00Hlop: pushcx mov cl,04H rolax,cl pushax andal,0FH movBYTEPTRx[si],al popax popcx addsi,2 Looplop moval,[X] movbl,[X+2] movcl,[X+4] mo
4、vdl,[X+6]print: movah,02H int21H movdl,al movah,02H int21H movdl,bl movah,02H int21H movdl,cl movah,02H int21Hexit: retMAINENDPENDstart5.4编写一个程序,要求比较两个字符串STRING1和STRING2所含字符是否相同,若相同则显示"MATCH",若不同在显示:"NOMATCH"。.modelsmall.dataSTRING1DB'Imuststudyhard'STRING2DB'Imuststudyhard'X DB'MATCH.$'Y
5、 DB'NOMATCH.$'.stack100H.codemainprocfarStart: pushdx movax,0 pushax movax,@data movds,ax moves,ax leasi,STRING1 leadi,STRING2 cld movcx,(string2-string1)/typeSTRING2 retEndstart5.5编写一个程序,要求能从键盘接收一个个位数N,然后响铃N次,(响铃的ASCII为07)。这题比较有意思,呵呵。modelsmall.codemainprocfarstart: pushds subax,ax pushax
6、input: movah,01H int21H cmpal,20H je exit cmpal,30H jleinput cmpal,3AH jgeinput subal,30H movcx,ax andcx,0FFHlop: movdl,07H movah,2H int21H looplop jmpinputexit: retmainendpendst
7、art5.6编写程序,将一个包含有20个数据的数组M分成两个数组:正数数组和负数数组N,并分别把这两个数组中的数据个数显示出来。.modelsmall.386.dataMDB1,2,3,4,5,6,7,8,9,10,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10PDB20dup(?)NDB20dup(?).codeMAINPROCFARstart: PUSHds AND ax,0 PUSHax MOV ax