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個しか印刷しません。オフセットをインクリメントすることの何が問題なのですか?なぜ違いが生じないのですか?

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 に答える