我试图找出一种使用 68HC11 IDE 实现斐波那契序列的方法,该 IDE 使用 Motorolla as11 汇编器。
我已经使用 2 字节无符号小端格式完成了它,现在我尝试使用 4 字节变量更改它,使用大端格式
我的伪代码(用 c 编写):
RESULT = 1;
PREV = 1;
COUNT = N;
WHILE(COUNT > 2){
NEXT = RESULT + PREV;
PREV = RESULT;
RESULT = NEXT;
COUNT--;
}
我将包括一些我当前的汇编代码。请注意,count 设置为 1 字节的 unsigned int,prev、next 和 result 是 2 字节的 unsigned int。N 无符号,设置为 10。
ORG $C000
LDD #1
STD RESULT
STD PREV
LDAA N
STAA COUNT
WHILE LDAA COUNT
CMPA #2
BLS ENDWHILE
LDD RESULT
ADDD PREV
STD NEXT
LDD RESULT
STD PREV
LDD NEXT
STD RESULT
DEC COUNT
BRA WHILE
ENDWHILE
DONE BRA DONE
END
我现在遇到的问题是改变这个(除了明显的变量更改/声明)N 现在将从 40 开始,而不是 10。将我的伪代码更改为包含指针允许我用 1 比 1 更好地实现它大端?由于这是little-endian,我认为我必须更改一些分支。是的,这是课堂作业,我不是在寻找代码,只是一些指导会很好。
谢谢!