我第一次在汇编中使用 ds、si 和字符串相关指令。我正在尝试逐字符读取命令行参数,这就是我的代码现在的样子:
GetCommandLine:
push ebp
mov ebp, esp
push edi
push esi
call GetCommandLineW
mov edi, eax
mov esi, ebp
Parse:
lodsw
cmp ax, 0dh ; until return is found
jne Parse
pop esi
pop edi
pop ebp
ret
因此,该GetCommandLineW
函数返回一个正确的指向字符串的指针。问题是该Parse
部分永远循环,我看不到 AX 寄存器正在加载字符串中正确的下一个字节。我认为EDI:ESI未正确加载或其他