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

时间:2017-08-13 02:48:56

标签: assembly lc3

我需要能够获取两个用户输入并将它们存储在LC3组件中的相同内存位置。例如,如果用户输入GO-我需要将G存储在一个寄存器中,将O存储在第二个寄存器中,但是将它们组合在同一存储器位置中。基本上,与PUTSP功能相反。我不明白你如何把一个放在0-8位,并指定另一个进入第9-15位,这样PUTSP功能运行就会打印出GO。

1 个答案:

答案 0 :(得分:0)

所以基本上伪代码看起来像

doublechr = 0
r0 = getc();
doublechr += r0
doublechr = doublechr << 8;
r0 = getc();
doublechr += r0;

请记住,左移相当于乘以2的幂。您只需要简单地执行连续添加以将包含&#34; doublechr&#34;的寄存器加倍。

按位或不需要,因为在移位简单的ADD指令之后,保证底部的8位为零。