实验二
字符显示程序
请编写一个循环结构的程序,通过使用02H号功能调用,依次在屏幕上显示26个英文字母的大写形式。
mov dl,"A"
mov dh,"a"
mov ah,02H
mov cx,26
loop1:
int 21H
xchg dl,dh
int 21H
xchg dl,dh
inc dl
inc dh
loop loop1
字符转换显示程序
由键盘输入一个字母的小写形式,将其变换为大写形式输出。通过这个小程序的编写,熟悉01H号功能调用,从键盘输入一个字符,再利用02号功能调用,由显示器显示出该字符。
mov ah,01h
int 21h
mov dl,al
sub dl,32
mov ah,02h
int 21h
数的输出
DOS功能调用也可以用于程序调试过程中,运算结果的显示,尝试使用02H号功能调用,修改上次实验的题目3.1,将表达式的运算结果显示在屏幕上。
data segment
A db 12
B db 55
ans dw ?
data ends
code segment
assume cs:code,ds:data
begin:
mov ax,data
mov ds,ax
mov ax,0
mov al,A
add al,B
mov dx,0
mov bx,2
div bx
mov ans,ax
mov al,A
and al,B
mov bl,2
mul bl
sub ans,ax
mov cx,4
Loop1:
mov bx,ans
and ans,0F000H
shr ans,12
mov dx,ans
cmp dl,9
jbe d
jmp w
d:
add dl,'0'
jmp Print
w:
sub dl,10
add dl,'A'
jmp Print
Print:
mov ah,02h
int 21h
mov ans,bx
shl ans,4
loop Loop1
code ends
end begin
显示从键盘输入的一串字符
从键盘输入一字符串,然后在下一行,将该字符串输出。通过该程序的编写,熟悉DOS功能调用的09号功能-字符串输出和10号功能调用-字符串输入。(“换行”符的ASCII码值为0AH)
data segment
save db 20,0,20 dup()
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov ah,0ah
int 21h
mov bl,save+1
add bl,2
mov save[bx],'$'
mov dl,0ah
mov ah,02h
int 21h
mov dl,0dh
mov ah,02h
int 21h
lea dx,save
add dx,2
mov ah,09h
int 21h
mov ax,4c00h
int 21h
code ends
end start