实验内容
编程实现:用10号DOS功能调用从键盘输入一串大小写字母到BUF为首址的缓冲区中,然后将其中的小写字母换成大写字母,原大写字母不变,仍然放入本缓冲区,再将该字符串内容在显示器上显示,且以十六进制形式显示实际输入的字符数。
要求:
1.用9号DOS功能调用输出一些提示信息,并用子程序实现十六进制数的输出,以BX作为传送参数的寄存器。
2.9、10号DOS系统功能调用以及回车换行的功能均用宏指令来实现。
代码
crlf macro
mov dl,0dh
mov ah,2
int 21h
mov dl,0ah
int 21h
endm
display1 macro buf1
lea dx,buf1
mov ah,9
int 21h
endm
display2 macro buf2
lea dx,buf2
mov ah,10
int 21h
endm
DATAS SEGMENT
message1 db "Please press any keys:",0dh,0ah,'$'
message2 db 0dh,0ah,"string number:$"
message3 db "H$"
buf label byte
maxlen db 32
actlen db ?
string db 32 dup(?)
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START:
MOV AX,DATAS
MOV DS,AX
display1 message1
display2 buf
mov bl,actlen;将实际长度存放到BX中去
mov bh,0;
mov string[bx],'$';输