- 实验目的和要求
1、熟练掌握汇编语言的程序格式,程序设计方法;学会使用masm6.11对源程序进行编译、链接、调试和运行
2、利用DOS功能调用INT21H的2号和9号功能进行屏幕显示的方法。
3、利用^Break退出程序的方法及局限性。
4、汇编程序的编写
- 实验环境
DOSBox 0.74
- 实验内容与过程
1.利用INT 21 09H号功能调用显示字符串。验证以下程序
1) 用A命令在100H处键入下列程序:
MOV AH, 9
MOV DX,110
INT 21
INT 20
2) 用A命令在110H处键入下列字符串的ASCII码:
DB 'This is a sample!$'
3) 用N命令和W命令将此程序(包括数据区)存入文件名为AA.COM的磁盘文件中。(存入前BX:CX必须置为文件长度值)。
4) 用Q命令退出DEBUG。
5) 在DOS命令下打AA,运行此程序,即在屏幕上显示'This is a sample!'字符串,若不出现,用DEBUG检查程序有无错误。
答:如图所示,根据步骤1~5进行操作后,程序成功运行。
2.利用INT 21H 2号功能显示字符:
1)用A命令在100H处键入下列程序:
XOR DL,DL
MOV CX,100
LOP: MOV AH,2
INT 21
INC DL
PUSH CX
MOV CX,8
DELY: PUSH CX
MOV CX,256
J: LOOP J
POP CX
LOOP DELY
POP CX
LOOP LOP
INT 20
2)用G命令运行程序,即在屏幕上依次缓慢的显示256个ASCII字符。仔细观察每个字符,和IBM-PC ASCII码表对照,看07H-0DH处控制字符显示结果与表上有何不同?
3)按CTRL+BREAK退出此程序,若一次不行可多做几次
。
答:如图所示,根据步骤1~5进行操作后,程序成功运行。对照表上的控制字符是字母,而输出结果还有一些符号。
- 实验结果与分析
3. 编写一个简化的段定义结构程序:
先提示输入数字“Input number:0-9”,然后在下一行显示输入的数字,结束;如果不是键入了0-9 数字,就提示错误“ERROR!”,继续等待输入数字。
程序如下:
该程序使用INT 21H中的09H功能来显示提示信息和错误信息,使用01H功能来读取用户输入,使用02H功能来显示输入的数字。如果输入的不是数字,程序会跳转到标签ERROR并显示错误信息,然后重新等待用户输入。如果输入的是数字,则将其转换为数字并保存到变量num中,然后显示该数字并退出程序。
编译成功后运行程序:
2. 编写一个完整的段定义结构程序:
从键盘输入一个字符串(不超过255个),将其中的小写字母转换成大写字母,然后按原来的顺序在屏幕上显示。要求对以上两个程序,进行编译,链接,调试,运行,给出具体步骤
编译程序的过程:
程序运行后的结果: