Where is -32768 coming from?

点点圈 提交于 2019-11-28 11:25:20

问题


This is LC3 Assembly code I am working with

.ORIG x3000
LOOP LDI R0, KBSR 
BRzp LOOP

From LC3 Assembly, I know that LDI is a load indirect addressing mode, meaning it read in an address stored at an location and then read the value at that location

From Lc3 Keyboard, I know that KBSR is the keyboard status register, which is one when keyboard has received a new character.

Here is my test run in Lc3 simulator? I entered the character 'a'

After executing LDI R0, KBSR, register 0 stores a value of -32768.

Does anyone know, based off my definitions for ldi and KBSR where this number is coming from? I was expecting something like 1 to be stored because the keyboard has received a new character.


回答1:


In KBSR (keyboard status register) bit 15 is set when a key is read, so you get 0b1000_0000_0000_0000 (or 0x8000) ... which - interpreted as a 2's complemented negative number - happens to be -32768 decimal.



来源:https://stackoverflow.com/questions/30017878/where-is-32768-coming-from

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!