Я пытаюсь преобразовать этот кусок кода С в 64 битном NASMStack в сборке NASM
int gcd (int a, int b)
{
int c;
while (a != 0) {
c = a;
a = b%a;
b = c;
}
return b;
}
, но я не уверен, где моя ошибка в том, я думал, может быть, есть что-то о стеке в сборке, что я «м не знают это то, что я сделал
вызова
push word[max]
push word[min]
call gcf
pop word[num1_ones]
функция стека
gcf:
mov ebp, esp
while:
cmp word[ebp+4], 0
je return
mov dx, 0
mov ax, word[ebp+6]
mov bx, word[ebp+4]
div bx
mov word[ebp+4], dx
mov word[ebp+6], bx
jmp while
return:
ret 2
Когда я бегу, я получаю это:
так что происходит, когда вы запускаете его? Похоже, он должен собраться. Но вы не описываете, в чем проблема, так что это не [mcve]. –