精品实验二汇编语言基础实验应用优秀
- 格式:pdf
- 大小:154.20 KB
- 文档页数:8
实验二
汇编语言基础实验应用
实验二汇编语言基础实验应用
DOS功能调用练习
实验目的:
1.介绍常用DOS功能调用
2.熟悉DOS功能调用的使用
实验要求:根据要求编写程序。
实验内容:
常用DOS功能调用介绍:
DOS功能调用格式:
(1)将调用参数装入制定的寄存器;
(2)如需功能号,把它装入AH;
(3)如需子功能号,把它装入AL;
(4)INT21H
1.从键盘输入一个字符并回显在屏幕上
MOV AH,1
INT21H
返回值AL=输入字符的ASCII码
支持Ctrl_C或Ctrl_Break的中断处理(即结束程序)。
2.从键盘输入一个字符,不回显
MOV AH,7
INT21H
返回值AL=输入字符的ASCII码
不支持Ctrl_C或Ctrl_Break的中断处理(即结束程序)。
3.从键盘输入一个字符,不回显
MOV AH,8
INT21H
返回值AL=输入字符的ASCII码
支持Ctrl_C或Ctrl_Break的中断处理(即结束程序)。
4.输入字符串到缓冲区
MOV DS,缓冲区所在段的段地址
MOV DX,缓冲区首偏移地址
MOV AH,10;或写为0AH
INT21H
输入字符串以回车结束,如果输入的字符数超过缓冲区容量,多余的字符无法输入。
缓冲区定义格式:
BUFFER DB最大字符数,实际输入字符数(不包括回车字符),字符串(包括回车字符)
例如:
BUFFER db20,?,20dup(?)
6.显示一个字符
MOV DL,要显示字符的ASCII码
MOV AH,2
INT21H
7.显示字符串
MOV DS,字符串所在段的段地址
MOV DX,字符串首偏移地址
MOV AH,9
INT21H
字符串定义格式:
STRING DB‘……$’字符串必须以字符$结束。
例1:输入一个字符,将其存入字节变量CHAR中,并在第二行显示其后继字符。用到了1号和2号功能,其中1号功能可以用7号或8号功能代替,其区别详见功能介绍。DATA SEGMENT
CHAR DB?
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
MOV AH,1
INT21H;输入一个字符
MOV CHAR,AL;存入变量CHAR中
MOV DL,0AH
MOV AH,2
INT21H;显示换行符(换行符的功能为将光标移至下一行的当前位置)
MOV DL,0DH
MOV AH,2
INT21H;显示回车符(回车符的功能为将光标移至本行行首)
MOV AL,CHAR
INC AL;取得后继字符的ASCII码
MOV DL,AL
MOV AH,2
INT21H;显示字符
MOV AH,4CH
INT21H;退出程序
CODE ENDS
END START
例2:输入姓名并存入MYNAME缓冲区中。用到了0A号功能和9号功能。
DATA SEGMENT
MESSAGE DB‘Please enter your English name:$’
MYNAME DB21,?,21DUP(?);缓冲区最多容纳21个字符(包括回车)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
LEA DX,MESSAGE
MOV AH,9
INT21H;输出字符串
LEA DX,MYNAME
MOV AH,0AH
INT21H;输入字符串
MOV AH,4CH
INT21H
CODE ENDS
END START
实验题目:
编写程序实现:编写程序实现输入1个学生的学号,姓名,性别,年龄,并保存在变量中,然后再将这1个学生的信息以一行的形式显示出来。要求:输入信息利用1号或0Ah号功能,输出信息利用2号或9号功能。
数据段定义示例:(也可以自己根据需要定义变量的结构)注意程序粘贴到记事本后引号需要改写为英文输入法的引号。
DATA SEGMENT
MESSAGE1DB‘Just knock the keyboard:’,0AH,0DH,’$’;输入提示语
MESSAGE2DB‘Oh,see them again!’,0AH,0DH,’$’;输出提示语
STUDENT_NUMBER DB11,?,11DUP(?);假设学号为10个字符
STUDENT_NAME DB21,?,21DUP(?);假设姓名不超过20个字符
STUDENT_SEX DB?;性别F/M
STUDENT_AGE DB3,?,3DUP(?);年龄为2个字符00~99
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX,DATA
MOV DS,AX
;Enter your code here
MOV AH,4CH