【发布时间】:2015-07-12 08:44:53
【问题描述】:
我正在做一个模拟考试题
问题 在执行该程序时,用户输入两个数字。 xGuess 的值是多少,所以我们可以去掉 ASCII 模板?解释一下。
.ORIG x3000
TRAP x23
LD R2, ASCII
ADD R1, R2, R0
TRAP x23
ADD R0, R0, R2
ADD R0, R0, R1
ASCII .FILL xGuess
.END
使用Lc3 Assembly 作为参考,我能够弄清楚这个程序的作用(从上到下)
- 开始在内存地址 x3000 放置代码
- 让用户输入一个字符,调用这个字符。寄存器 0 将存储 k 的值
- xGuess -> R2
- (k + xGuess) -> R1.
- 让用户输入另一个字符,称为这个字符 c。 c->R0
- (c + xGuess) -> R0
- ((c + xGuess) + (k + xGuess))-> R0
所以最后,R0 会存储 k + c + 2 * xGuess 的值。 这是我在 Lc3 中的相同运行(如下所示)(xGuess = 4,k = 97,c = 98)
这证实了我的怀疑,因为 R0 存储的是 97 + 98 + 2 * 4 或 203。
有谁知道“剥离 ASCII 模板”的问题是什么意思?我不太明白这个措辞,因为 ASCII 的值会影响最终存储在 R0 中的值。
【问题讨论】:
标签: assembly ascii cpu-registers computer-architecture lc3