2011-08-02 32 views
0

我碰到一個代碼,一個SIC/XE機....下面是立即程序計數器相對尋址

0003   LDB #LENGTH ;a 
0020   LDA #3  ;b 
0033 LENGTH RESW 1  ;c 
103C  +LDT #4096 ;d 

現在它被賦予了其對我來說問題源行...那'a'將有一個對象代碼,其中pc相對和即時模式將被使用....但b將只有立即模式....現在長度爲0033,所以爲什麼要使用pc相對模式... 。如果傳統上必須使用pc相對模式,那麼爲什麼不在'b'中使用pc relative和immediate?

+0

對不起,我不能跟隨你的問題。你能澄清嗎? (它看起來像一個確實不是PC相對的,但我不知道這個特定的架構。) –

+0

@david我讀了(我指的是leland l beck的系統軟件的書),在sic/xe結構地址是pc相對如果這超出了範圍,然後基地相對....所以我非常相信,這將是這種情況,但後來我看到'B'只使用立即模式(儘管可行的PC模式不使用).. 。然後在下一段中,書中陳述了'a'的情況,沒有給出任何理由 – avinash

+0

-1請參閱我的回答。 –

回答

0

對不起,但這不是我所期望的一個問題。

首先,您的「代碼行」完全脫離了上下文,因爲第一列表示位置,所以我們缺少所有位置之間的位置。一個減去。

其次,請用適當的標記表明這是家庭作業。一個減去。

三,請包括對原始來源的引用,如the PPT file your university gave you。二十減去。

想想你自己很幸運,我只能減一個。

現在我不是一個壞人,所有加在一起,所以這裏是我的答案FWIW:

長度是屬於預留3字節代碼的地址0033的標籤,位於的附近當前PC位置。由於彙編程序在其決策中是自治的,因爲PC相對優先,並且由於最大2047的偏移已經足夠,所以彙編程序會採用PC-ralative。如果您查看鏈接的PPT中的操作碼,則會看到2D(十六進制)的PC相對(p = 1)偏移量,LDB指令後的位置爲6,2D + 6 = 33(全部十六進制),QED。

在同樣的意義上是「B」:由於B = 0且p = 0,我們使用直接尋址和操作碼具有的3「地址」,所以A裝有恆定3.

只有操作碼中的加號表示使用帶有20位地址字段的4字節指令的格式4。