section .data
section .bss
x1: resb 4
x2: resb 4
k: resb 4
n: resb 4
section .text
global _fibonacci
_fibonacci:
mov [n], rdi
mov rax, 0
mov [x1], rax
mov rax, 1
mov [x2], rax
mov rax, 0
mov [k], rax
mov rax, [n]
ret
这是我的一个小功能。我不知道,为什么返回的值是“0”,尽管链接的C程序给出了' 10'。有谁知道,出了什么问题?
答案 0 :(得分:1)
所有变量都声明为4个字节,但是你正在从它们读取和写入64位寄存器(8个字节)。
此代码:
mov rax, 0
mov [k], rax
将从k
开始的8个字节中存储0,即k
和n
。