0

所以我是一个新的汇编程序员,

一个我似乎无法理解的概念是你将如何能够

LD R0, R1

在哪里

AND R0, R0, #0

AND R1, R1, #1

我知道您必须使用操作码将内存地址加载到寄存器中LD,但是您如何能够将包含十进制 1 的寄存器加载到包含十进制 0 的寄存器中?

我正在尝试制作一个斐波那契循环:

loop    ADD R2, R0, R1    ; F_i = F_0 + F_1
        LDI R0, R1        ; F_0 = F_1
        LDI R1, R2        ; F_1 = F_2
        AND R3, R3, #-1   ; decrements counter by 1
        BRp loop

我需要在哪里设置负载R0R1新计算的斐波那契和R2

4

1 回答 1

0

我假设您只使用没有更新的 LC3(即不是 LC3b)。考虑到这一点,您对 LD/LDI 的使用(和/或理解)是不正确的。你试过在 LC3Edit 中编译你的代码吗?它会吐出一个错误。看看这个问题的回答。从我在网上找到的 LC3 指令集 PDF http://pages.cs.wisc.edu/~markhill/cs252/Spring2007/handouts/lc3-1page.pdf:其中一个操作数不是寄存器,而是一个标签,所以你不能做你将不得不为每个循环加载、计算、存储。

LD DR, label ; Load PC-Relative
LDI DR, label ; Load Indirect



LD R0, R1

于 2014-10-16T03:02:46.433 回答