我需要能够接受两个用户输入并将它们存储在LC3程序集的同一内存位置。例如,如果用户在GO-中键入,我需要将G存储在一个寄存器中,将O存储在第二个寄存器中,但将它们组合在同一内存位置。本质上,与 PUTSP 功能相反。我不明白你怎么能把一个放在 0-8 位中并指定另一个进入 9-15 位,所以 PUTSP 函数运行,它们被打印为 GO。
所以本质上伪代码看起来像
doublechr = 0
r0 = getc();
doublechr += r0
doublechr = doublechr << 8;
r0 = getc();
doublechr += r0;
请记住,左移相当于乘以 2 的幂。 您只需要执行连续添加即可使包含"doublechr"的寄存器加倍。
不需要按位或,因为在移动简单的 ADD 指令后,底部 8 位保证为零。