我有以下代码:
mov ecx, 0
mov eax, offset ReadWritten
RottenApple:
push ecx
push eax
push 0
push eax
push 1
push offset bytearray
push consoleOutHandle
call WriteConsole
pop eax
pop ecx
inc ecx
inc eax
cmp ecx, 10
jne RottenApple
目的是打印,如果用户输入为“123456”,则为拳头1,然后是2等...但它只打印10个1。增加偏移量有什么不对,为什么它没有任何差异?
答案 0 :(得分:0)
请注意,调用eax
会破坏WriteConsole
(它将包含返回值),因此您必须像保存ecx
一样保存它。
<强>更新强>:
仔细看,你用错误的参数调用WriteConsole
。您想要增加偏移量,正如您在问题中所说,但您并没有这样做。
尝试类似:
mov ecx, 0
mov eax, offset bytearray
RottenApple:
push ecx
push eax
push 0
push offset ReadWritten
push 1
push eax
push consoleOutHandle
call WriteConsole
pop eax
pop ecx
inc ecx
inc eax
cmp ecx, 10
jne RottenApple