IBM-PC汇编语言程序设计课后习题答案(第二版 沈美明))

IBM-PC汇编语言程序设计课后习题答案(第二版 沈美明))

ID:47429894

大小:121.01 KB

页数:44页

时间:2020-01-11

IBM-PC汇编语言程序设计课后习题答案(第二版 沈美明))_第1页
IBM-PC汇编语言程序设计课后习题答案(第二版 沈美明))_第2页
IBM-PC汇编语言程序设计课后习题答案(第二版 沈美明))_第3页
IBM-PC汇编语言程序设计课后习题答案(第二版 沈美明))_第4页
IBM-PC汇编语言程序设计课后习题答案(第二版 沈美明))_第5页
资源描述:

《IBM-PC汇编语言程序设计课后习题答案(第二版 沈美明))》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第五章5.1试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。答:程序段如下:BEGIN:MOVAH,1;从键盘输入一个字符的DOS调用INT21HCMPAL,‘a’;输入字符<‘a’吗?JBSTOPCMPAL,‘z’;输入字符>‘z’吗?JASTOPSUBAL,20H;转换为大写字母,用ANDAL,11011111B也可MOVDL,AL;显示一个字符的DOS调用MOVAH,2INT21HJMPBEGINSTOP:RET5.2编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符。答:程序段如下:BEGIN:MOVAH,1;从键盘输入一个字符

2、的DOS调用INT21HCMPAL,‘a’;输入字符<‘a’吗?JBSTOPCMPAL,‘z’;输入字符>‘z’吗?JASTOPDECAL;得到前导字符MOVDL,AL;准备显示三个字符MOVCX,3DISPLAY:MOVAH,2;显示一个字符的DOS调用INT21HINCDLLOOPDISPLAYSTOP:RET5.3将AX寄存器中的16位数分成4组,每组4位,然后把这四组数分别放在AL、BL、CL和DL中。答:程序段如下:DSEGSEGMENTSTOREDB4DUP(?)DSEGENDS┇BEGIN:MOVCL,4;右移四次MOVCH,4;循环四次LEABX,STOREA10:MOVDX,

3、AXANDDX,0FH;取AX的低四位MOV[BX],DL;低四位存入STORE中INCBXSHRAX,CL;右移四次DECCHJNZA10;循环四次完了码?B10:MOVDL,STORE;四组数分别放在AL、BL、CL和DL中MOVCL,STORE+1MOVBL,STORE+2MOVAL,STORE+3STOP:RET5.4试编写一程序,要求比较两个字符串STRING1和STRING2所含字符是否完全相同,若相同则显示‘MATCH’,若不相同则显示‘NOMATCH’。答:程序如下:DSEGSEGMENTSTRING1DB‘Iamastudent.’STRING2DB‘Iamastudent!

4、’YESDB‘MATCH’,0DH,0AH,‘$’NODB‘NOMATCH’,0DH,0AH,‘$’DSEGENDS;--------------------------------------------------------------------------CSEGSEGMENTMAINPROCFARASSUMECS:CSEG,DS:DSEG,ES:DSEGSTART:PUSHDS;设置返回DOSSUBAX,AXPUSHAXMOVAX,DSEGMOVDS,AX;给DS赋值MOVES,AX;给ES赋值;BEGIN:LEASI,STRING1;设置串比较指令的初值LEADI,STRING2

5、CLDMOVCX,STRING2-STRING1REPECMPSB;串比较JNEDISPNOLEADX,YES;显示MATCHJMPDISPLAYDISPNO:LEADX,NO;显示NOMATCHDISPLAY:MOVAH,9;显示一个字符串的DOS调用INT21HRETMAINENDPCSEGENDS;以上定义代码段;--------------------------------------------------------------------------ENDSTART5.5试编写一程序,要求能从键盘接收一个个位数N,然后响铃N次(响铃的ASCII码为07)。答:程序段如下:BEG

6、IN:MOVAH,1;从键盘输入一个字符的DOS调用INT21HSUBAL,‘0’JBSTOP;输入字符<‘0’吗?CMPAL,9;输入字符>‘9’吗?JASTOPCBWMOVCX,AX;响铃次数NJCXZSTOPBELL:MOVDL,07H;准备响铃MOVAH,2;显示一个字符的DOS调用,实际为响铃INT21HCALLDELAY100ms;延时100msLOOPBELLSTOP:RET5.6编写程序,将一个包含有20个数据的数组M分成两个数组:正数数组P和负数数组N,并分别把这两个数组中数据的个数显示出来。答:程序如下:DSEGSEGMENTCOUNTEQU20ARRAYDW20DUP(?

7、);存放数组COUNT1DB0;存放正数的个数ARRAY1DW20DUP(?);存放正数COUNT2DB0;存放负数的个数ARRAY2DW20DUP(?);存放负数ZHENDB0DH,0AH,‘Thepositivenumberis:’,‘$’;正数的个数是:FUDB0DH,0AH,‘Thenegativenumberis:’,‘$’;负数的个数是:CRLFDB0DH,0AH,‘$’DSEGEND

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。