实验二 顺序程序设计实验
实验二 字符及字符串输入/输出与顺序程序设计实验
一、实验目的
1) 学习和掌握字符及字符串的输入输出方法。
2) 掌握顺序程序的设计方法。
3) 进一步掌握调试工具的使用方法。
二、实验预习要求
1) 复习DOS 功能调用中用于字符输入(功能号为01H )、字符输出(功能号为02H )、
字符串输入(功能号为0AH )以及字符串输出(功能号为09H )的调用方法。
2) 复习BCD 码运算调整指令。
3) 根据“三、实验内容”中给出的源程序框架,编写完整的源程序,以便实验时调试。
三、实验内容
从键盘输入两个一位十进制数,计算这两个数之和,并将结果在屏幕上显示出来。
1. 问题分析
比如使用功能号为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 功能调用实现从键盘输入一个字符,格式如下:
MOV AH ,01H
INT 21H ;此时程序等待用户键入,键入字符的ASCII 码值存在AL 中 SUB AL ,30H ;减去30H 后得到键入数字所代表的数值
2) 提示信息字符串的显示。
通过功能号为9的DOS 功能调用实现字符串显示,注意字符串的最后一个字符必需为‘$’。指令格式如下:
MOV DX ,OFFSET INFOR1 ;INFOR1为在数据段中定义的要显示的字符串 MOV AH ,09H
INT 21H
3) 非压缩型BCD 码加法调整指令的使用。
设从键盘输入的数值已存放在寄存器AL ,BL 中,可用下列程序完成数据相加和调整操作:
XOR AH ,AH
ADD AL ,BL
AAA ;执行该指令好,AH 中为和的十位上的数字,AL 中为个位上的数字
4) 计算结果的显示。
执行完AAA 指令后,只需分别将AH (十位上的数值)和AL (个位上的数值)加上30H ,并依次调用功能号为2的DOS 功能调用来显示字符。具体指令代码如下:
PUSH AX
MOV DL ,AH
ADD DL ,30H
MOV AH ,02H
INT 21H
POP AX
MOV DL ,AL
ADD DL ,30H
MOV AH ,02H
INT 21H
源程序框架
DATA SEGMENT
INFOR1 DB ‘Please Input the First Data(
INFOR2 DB 0AH ,0DH ,’ Please Input the Second Data(
INFOR3 DB 0AH ,0DH ,’ The Result is:$’
;0DH 和0AH 分别为非显示字符回车和换行的ASCII 码值
;美圆符号“$“为字符串结束标志,不能省略
DATA ENDS
CODE SEGMENT
ASSUME CS :CODE ,DS :DATA
START :MOV AX ,DA TA
MOV DS ,AX
SUB AL ,30H
MOV BL ,AL
SUB AL ,30H
PUSH AX
POP AX
PUSH AX
MOV AH ,4CH
INT 21H
CODE ENDS
END START
3. 程序调试
源程序编写完成后,先静态检查,无误后,对源程序进行汇编和连接,生成可执行文件。在DOS 命令提示符下运行该程序,分析运行结果是否正确。若结果不正确,使用DEBUG 对其进行调试。
四、实验报告要求
1. 补全“三、实验内容”中源程序框架内未需填写的程序代码,并说明在调试该程序
过程中遇到了哪些问题,是如何处理的。
2. 写出实验小结,内容包括实验心得(收获)、不足之处和今后应注意的问题等。 2.
相关文章
- [测试技术与信号处理]实验指导书
- 实验1 心理物理法
- 数据结构A教学大纲
- 实验一 线性表应用类实验
- 天津理工大学操作系统实验3:磁盘调度算法的实现
- 判断金属活动性强弱的可能方法
- 办公自动化教案首页
- 等级排列法测定颜色偏好
- 用顺序结构表示栈并实现栈的各种基本操作
实验指导书 实验项目名称:测试装置动态特性的测量 实验项目性质:综合性 所属课程名称:测试技术实验 实验计划学时:2 一.实验目的 1.了解差动变压器式位移传感器的工作原理 2.掌握测试装置动态特性的测试 3.掌握m-k-c 二阶系统动态特 ...
实验1 最小变化法-明度的差别阈限 实验目的: 学习最小变化法,测量明度的差别阈限. 简介: 最小变化法是经典心理物理学测量感觉阈限的重要方法之一.经典心理物理学认为,可以用物理量来表达感觉量,因此,存在一种达到觉察水平所必需的临界量值,即 ...
数据结构A 教学大纲 (Data Structures A) 课程编号: 06311360 学 分: 5.0 学 时: 75 (其中:讲课学时:60 实验学时:0 上机学时:15) 先修课程:离散数学.程序设计基础.面向对象程序设计 适用专 ...
实验一线性表应用类实验 一. 问题定义及需求分析 1. 问题描述 对线性表中的前M 个元素和后N 个元素整体互换. 2. 实验要求 设计元素整体互换的模拟程序. a. 采用顺序表存储结构实现. b. 采用链表存储结构实现. 3. 输入形式 ...
实验报告 学院(系)名称:计算机与通信工程学院 姓名 班级 卢洪利 2014级4班 课程名称 学号 实验项目 操作系统 20116年12月 8 日 第3.4节 20116年12月12日 第7.8节 20116年12月15日 第3.4节 20 ...
判断金属活动性强弱的可能方法 通过实验,人们归纳和总结出了常见金属的化学活动性顺序.金属的化学活动性顺序在工农业生产和科学研究中有重要应用,我们可以通过以下一些方法进行判断. 1. 在金属活动性顺序里,金属的位置越靠前,它的活动性就越强. ...
广西工业职业技术学院 教案首页 课程名称 主讲教师 办公自动化实训教程 康世瑜 计算机 0831 多媒体 0831 授课班级 及时间 软件 0831 网络 0831 网络 0832 1 顺序号( 1 ) 系.部 教研室 计算机与信息工程 系 ...
摘要:本实验通过被试间设计的方法,用等级排列的方法创建大学生颜色喜好程度的心理 量表,并通过得出的不同大学生对不同的颜色喜好,对实验后数据分析可知,被试大学生对于颜色的喜好程度的排序是:被试大学生对于颜色的喜好程度的排序是:>青> ...
栈的顺序表示和实现 基础实验 实验目的 (1)掌握栈的顺序表示和实现 (2)掌握栈的链式表示和实现 (3)掌握队列的顺序表示和实现 (4)掌握队列的链式表示和实现 实验内容 实验一:栈的顺序表示和实现 [实验内容与要求] 编写一个程序实现顺 ...