C ++ встроенный цикл ASM - PullRequest
       12

C ++ встроенный цикл ASM

0 голосов
/ 26 февраля 2012

У меня есть следующий фрагмент кода:

        mov cx,10
    l1: 
    mov eax,1
    push eax
    mov eax, offset format
    push eax
    call DWORD ptr [printf]
    pop ebx
    pop ebx
    dec cx
    jnz l1

Проблема в том, что он никогда не выходит из цикла!Printf связывается с регистром cx или как?

1 Ответ

3 голосов
/ 26 февраля 2012

printf следует соглашению о вызовах cdecl, для которого верно следующее:

"Значения в регистрах EAX, ECX и EDX не должны сохраняться, в то время как другие делают."

Поэтому попробуйте нажать CX, которая является нижней половиной ecx

...