【发布时间】:2016-04-14 01:44:46
【问题描述】:
下面是一段代码,它应该将一个数字(或多个)存储到堆栈中。 R6 是堆栈指针。除此之外,我不太明白发生了什么。为什么要将 R6 存储在 R1 中,然后清除它? (我相信 AND R1,R1,0 清除 R1) LC3的新手,所以只是在寻找澄清。 提前谢谢你!
; storing in the stack
STR R1, R6, 0 ;store num in first space
AND R1, R1, 0
STR R3, R6, 1 ; store operator in 2nd place
ADD R6, R6, 3 ; increment the stack
STR R6, R6, -1 ; and provide a link to it in slot 3
JSR INPUT ; back to input
【问题讨论】: