2017-08-13 45 views
0

我需要能夠接受兩個用戶輸入並將它們存儲在LC3程序集中的相同內存位置。例如,如果用戶鍵入GO,我需要將G存儲在一個寄存器中,將O存儲在另一個寄存器中,但將它們組合在同一個存儲單元中。實質上,與PUTSP功能相反。我不明白你如何在0-8位置1,並指定另一位進入9-15位,這樣PUTSP函數就會運行,它們將被打印爲GO。將兩個操作數放在LC3中的相同內存空間中

+0

使用移位和按位或? – Jester

回答

0

所以基本上是僞代碼看起來像

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

請記住,一個左移相當於由兩個力量放大。您只需簡單地執行連續的加法操作即可將包含「doublechr」的寄存器加倍。

由於在移位一個簡單的ADD指令後,底部8位保證爲零,所以需要按位或不需要。

相關問題