用中断输入并显示 利用BIOS系统功能调用,将键盘输入的小写字母转换成大写字母后输出显示,输入非小写字母时,什么也不显示,等待其他输入;输入‘$’字符时结束。 用汇编语言完成代码
时间: 2024-03-10 16:43:57 浏览: 78
好的,下面是一个汇编语言实现的示例代码:
```asm
.model small
.stack 100h
.data
msg db 'Press any key to continue...', 0ah, 0dh, '$'
buf db ?
conv db ?
cr equ 0dh
lf equ 0ah
.code
main proc
mov ax, @data
mov ds, ax
start:
; 输出提示信息
lea dx, msg
mov ah, 9
int 21h
; 等待键盘输入
mov ah, 1
int 21h
mov buf, al
; 判断是否为小写字母
cmp buf, 'a'
jb skip
cmp buf, 'z'
ja skip
sub buf, 20h
mov conv, buf
jmp output
skip:
; 判断是否为'$'字符
cmp buf, '$'
je exit
output:
; 输出转换后的字符
mov dl, conv
mov ah, 2
int 21h
jmp start
exit:
; 退出程序
mov ah, 4ch
int 21h
main endp
end main
```
在上面的代码中,我们使用了INT 21H来调用DOS提供的系统调用功能,比如输出字符串、等待键盘输入等。另外,我们使用了一些汇编语言的基本指令,比如MOV、CMP、JMP等。
需要注意的是,上面的程序中使用了一个无限循环来等待键盘输入,这样程序会一直运行直到输入了'$'字符才会退出。如果需要在输入任意字符后结束程序,可以在等待键盘输入后添加一个判断语句来实现。
阅读全文