我有一個簡單的c程序來打印n個斐波那契數字,我想將它編譯爲ELF目標文件。我不想直接在我的c代碼中設置斐波那契數字(n)的數量,我想將它們設置在寄存器中,因爲我正在模擬它用於ARM處理器。我該怎麼做?使用寄存器的輸入設置
這裏是代碼片段
#include <stdio.h>
#include <stdlib.h>
#define ITERATIONS 3
static float fib(float i) {
return (i>1) ? fib(i-1) + fib(i-2) : i;
}
int main(int argc, char **argv) {
float i;
printf("starting...\n");
for(i=0; i<ITERATIONS; i++) {
printf("fib(%f) = %f\n", i, fib(i));
}
printf("finishing...\n");
return 0;
}
我想計數器的設定ITERATIONS在我的寄存器,而不是在代碼中。
在此先感謝
什麼註冊?這是否與程序中的任何內容相對應? – wallyk
斐波那契數列是一個*正整數序列*,在這種情況下''float'可能是一個不恰當的類型。它不會準確地表示具有6位以上重要小數位的值。 'unsigned long'或'unsigned long long'會是更好的選擇,並且由沒有FPU的ARM進行更高效的計算。 – Clifford
@ Clifford *如果他需要更大的數字,他可以使用* double *,並使用封閉表單解決方案進行計算。 –