-32768来自哪里?

时间:2015-05-03 18:41:52

标签: assembly load cpu-registers computer-architecture lc3

这是我正在使用的LC3汇编代码

.ORIG x3000
LOOP LDI R0, KBSR 
BRzp LOOP

LC3 Assembly开始,我知道LDI是一种加载间接寻址模式,这意味着它读取存储在某个位置的地址,然后读取该位置的值

Lc3 Keyboard开始,我知道KBSR是键盘状态寄存器,当键盘收到一个新字符时就是一个。

这是我在Lc3模拟器中的测试运行?我输入了字符'a'enter image description here

执行LDI R0后,KBSR寄存器0存储值-32768。

有没有人知道,基于我对ldi和KBSR的定义,这个数字来自哪里?我期待存储类似1的东西,因为键盘已收到一个新角色。

1 个答案:

答案 0 :(得分:3)

在KBSR(键盘状态寄存器)中,当读取一个键时,第15位被设置,因此你得到0b1000_0000_0000_0000(或0x8000)......这被解释为2被补充负数 - 恰好是-32768十进制。