0

我有以下代码:

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。增加偏移量有什么问题,为什么没有任何区别?

4

1 回答 1

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
于 2012-12-09T13:29:45.710 回答