在 LC3 的同一内存空间中放置两个操作数



我需要能够接受两个用户输入并将它们存储在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 位保证为零。

相关内容

最新更新