Доброго времени суток. Дошли руки попрактиковаться на ассемблере nasm. не могу понять почему у меня происходит бесконечный цикл. как я понимаю команда loop делает if(--ecx) {}. хочу что то на подобии
while(--ecx)
printf("ecx = %d", ecx);
extern printf
%macro pabc 2 ; a "simple" print macro
section .data
.str db %1,0 ; %1 is first actual in macro call
section .text
mov rdi, fmt4 ; first arg, format
mov rsi, .str ; second arg
mov rdx, [%2] ; third arg
mov rax, 0 ; no xmm used
call printf ; Call C function
%endmacro
section .data
fmt4 db "%s = %d",10,0
section .bss
val_ecx resd 1
section .text
global main
main:
mov rcx, 100 ; счетчик, будет идти с конца
again:
mov [val_ecx], ecx
pabc "ecx", val_ecx
loop again