【发布时间】:2011-07-02 12:04:46
【问题描述】:
我正在用 LC-3 编写程序集。我有一个寄存器 R1,它指向一个特定的地址。如何将该地址的值更改为 0?不幸的是,这很快就会到期,因此我们将不胜感激!谢谢!
PS:如果您不了解 LC-3,这里有 15 条指令:ADD、AND、BR、JMP、JSR、JSRR、LD、LDI、LDR、LEA、NOT、RET、RTI、ST、STI , 力量, 陷阱
【问题讨论】:
我正在用 LC-3 编写程序集。我有一个寄存器 R1,它指向一个特定的地址。如何将该地址的值更改为 0?不幸的是,这很快就会到期,因此我们将不胜感激!谢谢!
PS:如果您不了解 LC-3,这里有 15 条指令:ADD、AND、BR、JMP、JSR、JSRR、LD、LDI、LDR、LEA、NOT、RET、RTI、ST、STI , 力量, 陷阱
【问题讨论】:
首先将另一个寄存器(例如 R0)归零。由于没有清除寄存器的指令,一个明显的选择是将寄存器与立即值 0 进行与运算(另一种是从寄存器本身减去寄存器)。同样,指令集没有简单的“间接存储”,但它确实有“带偏移的间接存储”(STR),因此您的源寄存器将是您清除的那个,目标寄存器将是 R1,并且偏移量为 0 (#0)。
【讨论】: