здрасьте люди добрые
извините что тревожу вас несерьезными вопросами, но помогите разобраться...
я пишу функцию на Assembler которая будет использоваться в программе на C++ и вот у меня проблема с пониманием, почему если я использую память выделеную на стеке, илм локальную переменную вместо регистра, то программа неверно считает. пожалуйста помогите разобраться вот на этом примере
.section .text _Z1fl
_Z1fl:
pushq %rbp
movq %rsp, %rbp
subq $1, %rsp
movq %rdi, -8( %rbp)
cmpq $0, -8(%rbp)
jne dw
mov $1, %rax
jmp ext
movq -8(%rbp), %rcx
subq $1, %rcx
movq %rcx, %rdi
movq $1 , %rax
call _Z1fl
movq -8(%rbp) , %rbx
mulq ,%rbx
ext:
leave
ret
//так работает
но если
movq -8(%rbp), %rcx
subq $1, -8(%rbp)
movq -8(%rbp), %rdi
movq $1 , %rax
call _Z1fl
%rcx , %rbx
mulq %rbx
не будет правильно работать. что то затирается в rcx?