-32768 来自哪里?

Where is -32768 coming from?

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

.ORIG x3000
LOOP LDI R0, KBSR 
BRzp LOOP

LC3 Assembly了解到LDI是一种load indirect addressing mode,意思是读入一个存储在某个位置的地址,然后读取该位置的值

Lc3 Keyboard得知,KBSR是键盘状态寄存器,是键盘接收到一个新字符时的寄存器。

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

执行LDI R0、KBSR后,寄存器0存入-32768的值。

根据我对 ldi 和 KBSR 的定义,有人知道这个数字是从哪里来的吗?我原以为会存储类似 1 的内容,因为键盘收到了一个新字符。

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