2017-09-30 90 views
0

編輯:原來的問題是爲什麼x3103具有值x1482末

假設以下LC-3程序被加載到存儲器中,起始 位置x30FF:

x30FF 1110 0010 0000 0001

X3100 0110 0100 0100 0010

x3101 1111 0000 0010 0101

x3102 0001 0100 0100 0001

x3103 0001 0100 1000 0010

如果執行該程序,什麼是 執行結束R2中的值?

x30FF 1110 0010 0000 0001; R1 < - PC'+ 1; R1 < - x3101

x3100 0110 0100 0100 0010; R2 < - mem [R1 + 2]; R2 < - mem [x3103] = x1482

x3101 1111 0000 0010 0101; TRAP x25 = HALT

x3102 0001 0100 0100 0001; x1441

x3103 0001 0100 1000 0010; x1482

的問題是什麼是R2的在程序

在這個問題上我明白了一切,直到X3100年底內容

不過,我不明白是什麼MEM [R1 + 2]手段以及x3102在寄存器2中的x1441以及x3103的x1482值如何。

據我所知,在任何時候都沒有加載到R2中。

x1441和x1482從哪裏來?

有人可以解釋R2如何在其中有x1482?

回答

1

查看您發佈的機器語言。

LEA R1,1的第一條指令就是將PC + 1存儲到R1中。由於在執行指令時PC將爲x3100,因此x3101存儲到R1中。

第二條指令是LDR R2,R1,2將取R1的值加上2 ,然後從內存中加載前一次計算形成的地址並將其存儲在R2中。 R1的值是x3101,x3101 + 2是x3103,所以無論在地址x3103將存儲在R2中。由於您發佈了x3103包含x1482,這是R2中存儲的內容。

phrasing mem [R1 + 2]表示從內存中加載地址,該地址是通過取R1的值並將其加2得到的地址加載的。

從你的編輯,是的x1441和x1482似乎只是數據。

相關問題