预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共14页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

微机原理第二次实验字符及字符串输入输出与顺序程序设计实验班级:姓名:学号:日期:2.2字符及字符串输入输出与顺序程序设计实验2.2.1实验目的1、学习和掌握字符及字符串的输入输出方法。2、掌握顺序程序的设计方法。3、进一步掌握调试工具的使用方法。2.2.2实验预习规定复习DOS功能调用中用于字符输入(功能号01H)、字符输出(功能号02H)、字符串输入(功能号为0AH)以及字符串输出(功能号09H)的调用方法(详见教材5.5.6)。复习BCD码运算调整指令。根据“2.2.3实验内容”中给出的源程序框架编写完整的源程序,以便实验时调试。从“2.2.4实验习题”中任选一道题目,编写源程序,以便上机调试。实验内容从键盘输入两个一位十进制数,计算这两个数之和,并将结果在屏幕上显示出来。问题分析比如使用功能号为01H的用于实现单个字符输入的DOS功能调用接受从键盘输入的两个十进制数8和6,这时计算机内部得到的是这两个数的ASCII码值38H和36H。由于数字09的ASCII码值与其代表的数值之间相差30H,因此将其减去30H即可得到以非压缩型BCD数形式表达的十进制数08H和06H,使用ADD指令对它们进行相加后结果为0EH(00001110B),显然需要用非压缩型BCD数加法调整指令对ADD的运算结果进行调整,调整后得到两个非压缩型BCD数01H和04H,将它们分别加上30H后变为其相应的ASCII码31H(1的ASCII码)和34H(4的ASCII码),然后调用功能号为02H用于单个字符输出的DOS功能调用将它们显示出来。综上所述,需要考虑以下问题。(1)从键盘输入一个一位十进制数的方法通过功能号为1的DOS功能调用实现从键盘输入一个字符,格式如下:MOVAH,01HINT21H;此时程序等待用户键入,键入字符的ASCII码值存在AL中SUBAL,30H;减去30H后得到键入数字所代表的数值(2)提醒信息字符串的显示通过功能号为9的DOS功能调用实现字符串显示,注意字符串的最后一个字符必需为’$’。指令格式如下:MOVDX,OFFSETINFOR1;INFOR1为在数据段中定义的要显示的字符串MOVAH,09HINT21H(2)非压缩型BCD数加法调整指令的使用设从键盘输入的数值已存放在寄存器AL,BL中,可用下列程序完毕数据相加和调整操作:XORAH,AHADDAL,BLAAA;执行该指令后,AH中为和的十位上的数字,AL中为个位上的数字请读者考虑,为什么要使用指令“XORAH,AH”,不用行否?(3)计算结果的显示执行完AAA指令后,只需分别将AH(十位上的数值)和AL(个位上的数值)加上30H,并依次调用功能号为2的DOS功能调用来显示字符。具体指令代码如下:PUSHAXMOVDL,AHADDDL,30HMOVAH,02HINT21HPOPAXMOVDL,ALADDDL,30HMOVAH,02HINT21H源程序框架DATASEGMENTINFOR1DB"PleaseInputtheFirstData(<10):$"INFOR2DB0AH,0DH,"PleaseInputtheSecondData(<10):$"INFOR3DB0AH,0DH,"TheResultis:$";0DH和0AH分别为非显示字符回;车和换行的ASCII码值,美圆符号“$”为字符串结束标志,不能省略。DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AX显示提醒信息INFOR1并从键盘接受一个字符的指令序列SUBAL,30HMOVBL,AL求和并调整指令序列显示提醒信息INFOR2并从键盘接受一个字符的指令序列SUBAL,30H显示提醒信息INFOR3的指令序列PUSHAXPOPAXPUSHAX显示十位及个位上数字的指令序列MOVAH,4CHINT21HCODEENDSENDSTART程序调试源程序编写完毕后,先静态检查,无误后,对源程序进行汇编和连接,生成可执行文献。在DOS命令提醒符下运营该程序,分析运营结果是否对的。若结果不对的,使用DEBUG对其进行调试。2.2.4实验习题设a,b,c,d为四个压缩型BCD数,它们被存放在内存dbcd开始的4个存储单元中,计算a+b+c+d,并将结果在屏幕上显示出来(注意压缩型BCD数的表达方法:十进制数38表达成压缩型BCD数时应写成38H)。程序编写完毕并运营对的后,打开源程序,改变a,b,c,d的内容,然后重新进行汇编、连接并运营程序,检查程序运营结果与手工计算结果是否相符。下面给出几组实验用数据:a=11,b=23,c=25,d=31a=10,b=20,c=30,d=40a=45,b=45,c=45,c=45a=88,b=99,