String 汇编代码中的字符串缓冲区
我刚刚结束了我的代码,允许覆盖您的密码。它是这样的(FASM): 现在我需要打印真正的密码。我知道字符串缓冲区是必须的,缓冲区的声明应该是什么样子,但我真的不知道如何使用它并使它工作。 呼救:)String 汇编代码中的字符串缓冲区,string,assembly,buffer,String,Assembly,Buffer,我刚刚结束了我的代码,允许覆盖您的密码。它是这样的(FASM): 现在我需要打印真正的密码。我知道字符串缓冲区是必须的,缓冲区的声明应该是什么样子,但我真的不知道如何使用它并使它工作。 呼救:) 干杯。由于您的程序允许输入15个字符的密码,您可以使用以下设置缓冲区: Buffer db 16 dup ("$") 在petla循环之前初始化DI寄存器,并通过stosb指令将从DOS函数获得的ASCII码放入缓冲区: mov di, Buffer mov cx, 16 petla:
干杯。由于您的程序允许输入15个字符的密码,您可以使用以下设置缓冲区:
Buffer db 16 dup ("$")
在petla循环之前初始化DI寄存器,并通过stosb
指令将从DOS函数获得的ASCII码放入缓冲区:
mov di, Buffer
mov cx, 16
petla:
mov ah,08h
int 21h
cmp al,0dh
je OK
stosb
mov ah,02h
mov dl,42
int 21h
;;;cmp cx,0
;;;je Fail
loop petla
请注意,CX=0的编译在代码中的<代码>循环指令之前是无用的。@ MILO,如果这个答案帮助了你并解决了你的问题,请考虑接受这个答案。有关如何接受以及为什么接受的更多信息,请参见以下SO信息:
mov di, Buffer
mov cx, 16
petla:
mov ah,08h
int 21h
cmp al,0dh
je OK
stosb
mov ah,02h
mov dl,42
int 21h
;;;cmp cx,0
;;;je Fail
loop petla