字符及字符串输入输出与顺序程序设计实验 实验报告 2 .2 .1 实验目的 1、学习和掌握字符及字符串的输入输出方法。 2、掌握顺序程序的设计方法。 3、进一步掌握调试工具的使用方法。 2 .2 .2 实验预习要求 1、 复习DOS功能调用中用于字符输入(功能号01H)、字符输出(功能号02H)、字符串输入(功能号为0AH)以及字符串输出(功能号09H)的调用方法(详见教材5.5.6)。 2、 复习BCD 码运算调整指令。 3、 根据“2.2.3 实验内容”中给出的源程序框架编写完整的源程序,以便实验时调试。 4、从“2.2.4 实验习题”中任选一道题目,编写源程序,以便上机调试。 2 .2 .3 实验内容 从键盘输入两个一位十进制数,计算这两个数之和,并将结果在屏幕上显示出来。 1 、 问题分析 比如使用功能号为 01H 的用于实现单个字符输入的 DOS 功能调用接收从键盘输入的两个十进制数 8 和 6,这时计算机内部得到的是这两个数的 ASCII 码值 38H 和 36H。由于数字 09 的 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 功能调用实现从键盘输入一个字符,格式如下: MOV AH, 01H INT 21H ;此时程序等待用户键入,键入字符的 ASCII 码值存在 AL 中 SUB AL, 30H ;减去 30H 后得到键入数字所代表的数值 (2) 提示信息字符串的显示 通过功能号为 9 的 DOS 功能调用实现字符串显示,注意字符串的最后一个字符必需为’$’。指令格式如下: MOV DX, OFFSET INFOR1 ;INFOR1 为在数据段中定义的要显示的字符串 MOV AH, 09H INT 21H (2)非压缩型 BCD 数加法调整指令的使用 设从键盘输入的数值已存放在寄存器 AL, BL 中,可用下列程序完成数据相加和调整操作: XOR AH,AH ADD AL, BL AAA ; 执行该指令后,AH 中为和的十位上...