实验四 字符及字符串的输入和输出

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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号功能,但要求被显示的字符串必须以‘$’结尾,否则会引起屏幕混乱。

相关文档
最新文档