微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我们刚刚使用GETC命令从键盘上读取了一个数字将此值转换为二进制并将其放入R4 3.2.3如何读取输入值

如何解决我们刚刚使用GETC命令从键盘上读取了一个数字将此值转换为二进制并将其放入R4 3.2.3如何读取输入值

我需要用LC-3汇编语言来编写它:

我们刚刚使用GETC命令从键盘上读取了一个数字。将该值转换为二进制并将其放入R4。

解决方法

这是一个例子,改编自George M. Georgiou和Brian Strader编写的实验手册。

3.2.3如何读取输入值

汇编命令GETCTRAP x20的另一个名称,它从键盘读取单个字符并将其ASCII值放在寄存器R0中。 R0的8个最高有效位被清除。读取的字符没有回声。例如,可以使用以下代码读取单个数字字符0到9,并将其值放在寄存器R3中:

GETC               ; Place ASCII value of input character into R0
ADD R3,R0,x0     ; Copy R0 into R3
ADD R3,R3,#−16   ; Subtract 48,the ASCII value of 0
ADD R3,#−16
ADD R3,#−16   ; R3 now contains the actual value

请注意,由于ADD的立即操作数的最大可能值为5位(采用二进制补码格式),因此必须使用3条指令减去48。因此,使用ADD指令的立即版本可以减去-16。例如,如果按下的键为“ 5”,则其ASCII值53将放置在R0中。从53减去48,结果5符合预期,并被放置在寄存器R3中。

Original Source

您需要对此进行调整以将结果放入R4。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。