2010-06-06 56 views
0

我對PDP-11(模擬器)的小問題,我有這樣的命令 增加2500,#2500在PDP-11尋址模式彙編

,這初步名單(從地址1000開始):

register/address - initial value 
pc     1000 
sp     600 
2500    3000 

,我想知道這個小片段正好運行,在我的小冊子,我發現: 首先,它從地址1000讀取inforamtion,這個地址裏面,我們有值066727,我們從閱讀次數後地址1002,且值必須是2500(因爲添加了2500,#250 0),但在我的小冊子中我有1474沒有任何解釋爲什麼,我知道我在這裏有相對尋址模式,但爲什麼1474裏面的地址1002而不是2500,預先感謝任何幫助

回答

0
ADD 2500,#2500 

編譯如下

0:  066727 ; ADD 
    2:  002474 ; 2500 - 6 (next instruction offset) 
    4:  002500 ; #2500 (literal value) 
    6:  ... ; next instruction 
    ... 
2500:  003000 
0

我沒有記得所有的尋址模式,但看地址1474,看看它是否包含2500

2

如果您有:

add  2500,#2500  ;add content of location 2500 to immediate value. 

組裝的第一個字將是指令,第二個將是第一個操作數(2500)的地址數據 ,第三個將是立即值2500。 第一個操作數的PC相對尋址模式將把PC的值加到給定的值以獲取操作數的地址。這將是2500與當時PC(1474,在讀取偏移量之後)之間的差值 。

1004 + 1474 = 2500, the address of the data. 

通常,一個會做:

add  #2500,2500  ;add 2500 to the word at location 2500. 

當存儲的結果在指令流中的第一個例子。