我目前有一个程序,它可以在屏幕上移动用户输入的数字,但我需要它是用户输入的字符。我如何将此程序转换为用户输入的字符呢?我已经尝试使用_GetCh
和_PutCh
,但没有成功。我正在使用DOSBox作为此ASM程序。
include PCMAC.INC
.model small
.586
.stack 100h
.data
prompt DB "Please enter a character is be printed: $"
theChar DW ?
.code
extrn GetDec:near
extrn PutDec:near
delay proc
push cx ;;save the caller's CX register
mov ecx,100000
for_2: nop
dec ecx
jnz for_2
pop cx ;; restore caller's CX
ret
delay endp
main proc
_Begin
_PutStr prompt
call GetDec
mov theChar, ax
mov cx,80
for_1:
mov ax, theChar
call PutDec
call delay
_PutCh 8,32
dec cx
jnz for_1
_Exit 0
main endp
end main
我试着将我的GetDec
/PutDec
更改为 Char 和 Ch,但没有成功。它无法打印任何内容。
1条答案
按热度按时间xfyts7mz1#
我不知道PCMAC.INC里有什么,但是对于DOSBox你应该可以通过编号来使用DOS函数:
使用函数01h从用户处获取字符
要在屏幕上放置字符,请使用函数02h
你不需要从内存中的变量存储和加载字符,你可以把它保存在BL寄存器中: