一、 实验目的
(1) 熟悉DOS系统功能调用中21H各功能的使用方法。.
(2) 了解汇编语言的程序结构。
二、实验内容
编写交互式程序,接受用户输入的数字。如果用户按下数字键1,应打印输出“The First!”;如果用户按下数字键2,应打印输出“The Second!”;如果用户按下数字键3,应打印输出“The Third!” 。
提示:
1、数据段应如下定义:string1 db ‘The first!’,0DH,0AH,’$’
2、DS的数值应等于seg string、DX的数值应等于offset string,使用9号功能就可以输出。
3、比较输入的数据是否1,、2、3,可以使用如下指令:
CMP AL,‘1’
四、实验报告
- 写出程序代码并适当加注释。
- 写出1、2、9、10号功能调用的作用及使用的方法。
- 该程序数据段中使用的0D、0A表示什么?$必须要加吗?
data segment
; add your data here!
pkey db "press any key...$"
string1 db 'The first!',0DH,0AH,'$'
string2 db 'The Second!',0DH,0AH,'$'
string3 db 'The Third!',0DH,0AH,'$'
string4 db 'error!',0DH,0AH,'$'
ends
stack segment
dw 128 dup(0)
ends
code segment
assume ds:data,cs:code
start:
; set segment registers:
mov ax, data
mov ds, ax
bS: mov ah,1
int 21h
CMP AL,'1'
jz b1
CMP AL,'2'
jz b2
CMP AL,'3'
jz b3
jmp b4
b1:
lea dx, string1
jmp AB
b2:
lea dx, string2
jmp AB
b3:
lea dx, string3
jmp AB
b4:
lea dx,string4
jmp AB
AB:mov ah,9
int 21h
jmp bS
mov ax,4c00h
int 21h
ends
end start ; set entry point and stop the assembler.