【发布时间】:2021-06-02 14:51:38
【问题描述】:
我正在为汇编编程做作业,但我无法解决这个问题。 任务是编写一个程序,其中用户输入密码,控制台显示“*”而不是输入的字母。输入上述密码后,用户按 ENTER 键“设置”密码,并要求用户再次输入相同的密码以检查它是否与之前设置的相同。
我让这段代码工作,它读取击键,保存输入的密码,然后将其写入控制台。但我无法让它在按下 ENTER 时停止。 (现在只注册12个字母)
section .text
org 100h
xor si, si
mov dl, '*'
loop:
mov ah, 7
int 21h
mov [letters+si], al
mov ah, 2
int 21h
inc si
cmp si, 12
jnz loop
xor si, si
write:
mov dl, [letters+si]
int 21h
inc si
cmp si, 12
jnz write
end:
mov ax, 4c00h
int 21h
section .bss
letters resb 12
【问题讨论】:
-
目前它似乎根本不包含任何甚至试图在 ENTER 上停止的代码。你尝试了什么?
-
我根本不懂汇编程序,所以这就是我得到的,我尝试了一些来自互联网的解决方案。但是我遇到了错误或没有按预期工作。
标签: assembly windows-10 nasm dosbox