0

我试图用汇编语言制作一个斐波那契生成器,使用单独的函数以二进制(DispBinary)显示值,但看起来数字显示为 6、30、120 等。订单有问题吗我已经用于 imul 还是我切换了 eax 和 ecx?

  Main: 
         Call DispBinary ;display binary
         Mov Ecx, 6
         Mov Eax, 1
  L1: 
         IMul Eax, Ecx
         Call DispBinary
         Loop L1 
         Xor Eax, Eax
4

1 回答 1

0

您可以使用此代码(rcx 代表 n,n=5)

ExitProcess PROTO

.data 

.code

main proc

mov rax,1
mov rbx,0
mov rcx,5
mov rdx,0 
push rdx

L1:
    mov rdx,rax
    add rdx,rbx
    push rdx
    mov rax,rbx
    mov rbx,rdx
    dec rcx
    cmp rcx,00h
    jnz L1
    nop



call ExitProcess

main endp

end
于 2014-11-26T08:27:06.680 回答