0
我需要能夠接受兩個用戶輸入並將它們存儲在LC3程序集中的相同內存位置。例如,如果用戶鍵入GO,我需要將G存儲在一個寄存器中,將O存儲在另一個寄存器中,但將它們組合在同一個存儲單元中。實質上,與PUTSP功能相反。我不明白你如何在0-8位置1,並指定另一位進入9-15位,這樣PUTSP函數就會運行,它們將被打印爲GO。將兩個操作數放在LC3中的相同內存空間中
我需要能夠接受兩個用戶輸入並將它們存儲在LC3程序集中的相同內存位置。例如,如果用戶鍵入GO,我需要將G存儲在一個寄存器中,將O存儲在另一個寄存器中,但將它們組合在同一個存儲單元中。實質上,與PUTSP功能相反。我不明白你如何在0-8位置1,並指定另一位進入9-15位,這樣PUTSP函數就會運行,它們將被打印爲GO。將兩個操作數放在LC3中的相同內存空間中
所以基本上是僞代碼看起來像
doublechr = 0
r0 = getc();
doublechr += r0
doublechr = doublechr << 8;
r0 = getc();
doublechr += r0;
請記住,一個左移相當於由兩個力量放大。您只需簡單地執行連續的加法操作即可將包含「doublechr」的寄存器加倍。
由於在移位一個簡單的ADD指令後,底部8位保證爲零,所以需要按位或不需要。
使用移位和按位或? – Jester