[英]LC3 program power function?
我想实现一个 function,它用 LC-3 为汇编语言中的数字提供动力。
我可以使用 4 个寄存器 R0、R1、R2 和 R3,并使用嵌套循环。
更准确地说,它将为 R2 供电给 R3,以便 R2^R3。
到目前为止,这是我的代码:
MyPOW ADD R3, R3, #0
BRz ZeroP
AND R0, R0, #0
ADD R1, R3, #0
; Outer Loop
OLoop AND R3, R3, #0
; Inner Loop
ILoop ADD R0, R0, R2
ADD R2, R2, #-1
BRp ILoop
ADD R3, R3, R0
ADD R1, R1, #-1
BRp OLoop
RET
ZeroP AND R3, R3, #0
ADD R3, R3, #1
RET
所以 MyPow 是 function 的名称,它会首先检查 R3 是否为 0,如果为 0,它将跳转到 ZeroP,立即返回 1。
否则,它将循环并将 R2 本身乘以 R3 次。 这就是我的目标。
预计内部循环将执行自乘工作,外部循环计算 R3 并递减,因此它将重复 R3 次。
但它不能正常工作,它只是进行正常的乘法运算,例如如果 R2 = 2 和 R3 = 3 则返回 6。
我不知道为什么,有人可以帮忙吗? 谢谢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.