实验三 DOS功能调用实验
一、 实验目的和要求
1、 掌握汇编语言集成编译软件的使用方法;
2、 能独立编写简单的程序,调试运行并验证结果。
二、 实验软件
星研集成环境软件。
三、 实验内容
1、 验证性实验(二选一)
(1) 代码转换程序
具体要求:参见《微机原理及接口技术实验指导书》P.8“2. 代码转换实验”的相关内容。
(2) 人机会话程序
具体要求:应用DOS中断的1、2、9、0AH四个子功能,编写人机会话程序,获取用户姓名。首先,计算机询问用户姓名,等待用户输入姓名的汉语拼音;然后将它显示在屏幕上,请用户确认;当用户键入“Y”,程序结束,否则再次询问用户姓名。
源程序如下:
DATA SEGMENT
MESG1 DB 0DH,0AH,’What is your name? $’
MESG2 DB ‘? (Y/N) $’
BUF DB 30
DB ?
DB 30 DUP (?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
BEG: MOV AX, DATA
MOV DS, AX
AGAIN: MOV AH, 9
MOV DX, OFFSET MESG1
INT 21H
MOV AH, 0AH
MOV DX, OFFSET BUF
INT 21H
MOV BL, BUF+1
MOV BH, 0
MOV SI, OFFSET BUF+2
MOV BYTE PTR [BX+SI],’$’
MOV AH, 2
MOV DL, 0AH
INT 21H
MOV AH, 9
MOV DX, OFFSET BUF+2
INT 21H
MOV AH, 9
MOV DX, OFFSET MESG2
INT 21H
MOV AH, 1
INT 21H
CMP AL, ’Y’
JNZ AGAIN
MOV AH, 4CH
INT 21H
CODE ENDS
END BEG
(3) 接收小写字母转换成大写字母并显示程序
具体要求:利用DOS中断的01号子功能,接收键盘输入的一串字符并存入内存单元,当接收到回车键时,将小写字母的ASCII码转换为大写字母的ASCII码,再利用02号子功能将其显示在屏幕上。
源程序如下:
DATA SEGMENT
BUF DB 200 DUP (?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX, DATA
MOV DS, AX
MOV SI, OFFSET BUF
MOV CL, 00H
A1: MOV AH, 01H
INT 21H
CMP AL, 0DH
JZ A2
SUB AL, 20H
MOV [SI], AL
INC SI
INC CL
JMP A1
A2: MOV DL, 0AH
MOV AH, 02H
INT 21H
MOV DL, 0DH
INT 21H
MOV SI, OFFSET BUF
MOV CH, 00H
A3: MOV DL, [SI]
MOV AH, 02H
INT 21H
INC SI
LOOP A3
MOV AH, 4CH
INT 21H
CODE ENDS
END START
2、 拓展性实验
简单计算器程序设计
具体要求:先在屏幕上显示“PLEASE INPUT X:”,然后接收键盘输入的X值;回车换行后,再显示“PLEASE INPUT Y:”,然后接收键盘输入的Y值;回车换行后,再显示“PLEASE INPUT Z:”,然后接收键盘输入的Z值;回车换行后,再显示“PLEASE INPUT W:”,然后接收键盘输入的W值;回车换行后,最终在屏幕上显示“TOTAL =”,并将表达式“[W-(X+120)*Y+200]/Z”以及计算结果显示在屏幕上。完成相应程序的流程图、汇
编语言程序设计,进行调试并验证结果。
参考程序:《微机原理及接口技术实验指导书》P.9汇编语言指导书实验三“1.编写计算下面函数值的程序”的相关内容。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论