【发布时间】:2017-03-27 20:30:08
【问题描述】:
我正在尝试编写一个程序来接受用户输入并打印该输入的二进制形式。我正在使用 getc 陷阱作为输入。我知道 getc 输入将存储在 R0 中,所以我认为需要使用 BRzp 然后 AND 每个位输出 1 或 0。有人可以告诉我我的想法是否正确。
PS 我必须以字符串的形式输出二进制代码。
【问题讨论】:
我正在尝试编写一个程序来接受用户输入并打印该输入的二进制形式。我正在使用 getc 陷阱作为输入。我知道 getc 输入将存储在 R0 中,所以我认为需要使用 BRzp 然后 AND 每个位输出 1 或 0。有人可以告诉我我的想法是否正确。
PS 我必须以字符串的形式输出二进制代码。
【问题讨论】:
几件事。
我正在使用 getc 陷阱进行输入。
如果您使用 GETC 来获取字符,如果您想让输入在屏幕上回显,则应在其后放置一个 PUTC。
我正在考虑需要使用 BRzp
BR 是一个条件分支。除非您希望 PC 分支到代码的不同部分,否则您不应该使用它。
然后与每一位相加
AND 是一个布尔代数函数。 0101 和 0011 将是 0001。
PUTC 或 PUTS(用于字符串)用于向控制台显示 ASCII 字符。
在处理 LC3 中的任何编码之前,我建议您在解决问题之前阅读每个 psudo-code 和 psudo-op 的作用以及 LC3 的功能。
这张幻灯片是一个很好的起点。它基本上向您展示了您在使用 Assembly 编码之前需要了解的所有内容:https://classes.soe.ucsc.edu/cmpe012/Winter09/lectures/06_LC3_Assembly.pdf
Intro to Computing Systems 教科书的附录:http://highered.mheducation.com/sites/dl/free/0072467509/104691/pat67509_appa.pdf
【讨论】: