实验四 字符及字符串的输入和输出
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四字符及字符串的输入和输出
一、实验目的
1.熟悉如何进行字符及字符串的输入输出。
2.掌握简单的DOS系统功能调用。
二、实验预习要求
1.复习系统功能调用的1、2、7、8、9、10号功能。
2.按照题目要求预先编写好实验中的程序段。
三、实验任务
1、输入以下程序段并用“single step”单步运行,执行INT 21H指令时,在键盘上按“5”键。
MOV AH,1
INT 21H
(1)运行结束后,(AL)=?它是哪一个键的ASCII码?
答:(AL)=35 他是5的ASCII码
运行结果如图
(2)重复运行以上程序段,并分别用“A”、“B”、“C”、“D”键代替“5”键,观
察运行结果有何变化?
答:A时AL=(61)
B时AL=(62)
C时AL=(63)
D时Al=(64)
(3)再将1变为7和8,分别运行之
答:7时AL=(37)
8时Al=(38)
2、输入以下程序段并运行之。
MOV DL,‘A’
MOV AH,2
INT 21H
(1)观察屏幕上的输出,是否显示了“A”字符?
显示了A字符如图
(2)分别用“#”、“X”、“Y”、“$”、“?”代替程序段中的“A”字符,观察屏幕上
的输出有何变化,并查看DL中的内容。
1、#时屏幕出现# 如图
DL=(23)
2、X时屏幕出现X 如图
DL=(58)
3、Y时屏幕出现Y 如图
DL=(59)
4、$时屏幕出现$ 如图
DL=(24)
5、?时屏幕出现?如图
DL=(3F)
(3)分别用0DH、0AH、24H代替程序段中的“A”字符,观察屏幕上的输出有何
变化。
答:屏幕依次出现 CR,LF,$
(4)用07H代替程序段中的“A”字符,观察屏幕上有无输出?计算机内的扬声器是否发出“哔”的声音?
答:无输出如图
发出哔的声音
3.按要求运行程序,并回答问题。
提示:系统使用0AH号功能调用时,按如下方法设置键盘缓冲区:
缓冲区长度N 实际读入的字符个数N个字节的预留内存区
在DS:0000H开始的内存区域设置变量名为M1的如下键盘缓冲区:DATA SEGMENT
M1 DB 5,0,5 dup (?)
DATA ENDS
然后输入以下程序段并单步运行,执行INT 21H指令时,在键盘上键入“5”、“4”、“3”、“2”、“1”、〈回车〉这六个键。
LEA DX,M1
MOV AH,0AH
INT 21H
程序段运行完后,检查DS:0000H开始的
内存区域:
①DS:0001H单元的内容是什么?它表示了什么含义?
答:设定的字符串的长度为5,但实际可用的只有4个,最后一个预留给回车键
②从DS:0002H开始的内存区域中的内容是什么?其中是否有字符“1”
的ASCII码?为什么?
答:最后一个是回车键用的,不在字符串内,所以只能输入四个
4.要在屏幕上显示一个字符串“Hello, world”,写出该字符串变量的定义语句和显示这个字符串的程序段。上机验证之。(此题不要求写在实验报告上) 答:DSEG SEGMENT
STRING DB’Hello,World’,0DH,0AH,’$’
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
START:MOV AX,DSEG
MOV DS,AX
LEA DX,STRING
MOV AH,09H
INT 21H
MOV AH,4CH
INT 21H
CSEG ENDS
END START
5. 1、2、9、10号功能的输入输出参数有哪些?分别放在什么寄存器中?
6
答:单字符的输入可以使用1,7,8号指令,其中,1号指令有回显。字符串的输入利用0AH号指令来实现,该功能要求用户指定一个键入缓冲区来存放输入的字符串。单字符的显示可以使用1号功能。字符串的显示需要调用9号功能,但要求被显示的字符串必须以‘$’结尾,否则会引起屏幕混乱。