2015-02-10 116 views
0

考慮具有字節可尋址存儲器的處理器。假設所有寄存器(包括程序計數器(PC)和程序狀態字(PSW))的大小均爲2個字節。主內存中的堆棧從內存位置(0100)hex執行,並向上增長。堆棧指針(SP)指向堆棧的頂層元素。 SP的當前值是(016E)十六進制。 CALL指令是兩個詞,第一個字是操作碼和第二個字是子程序 (一個字= 2個字節)的起始地址。 CALL指令實現如下:堆棧指針的值是多少?

  1. 商店PC的堆棧
  2. 商店PSW寄存器堆棧中的值
  3. 加載子程序的PC
起始地址的當前值

PC的只是一個CALL指令的取指(5FA0)六角前的內容。 CALL指令的執行後,堆棧指針的值是

A. 016A

B. 016C

C. 0170

D. 0172

此問題針對在GATE 2015計算機科學。

標誌着我d爲1回答請幫我確認我的答案,因爲我不知道我是否做了正確與否。

在此先感謝。

+1

走我們走過你如何到達'D',所以我們可以幫助你瞭解你在哪裏錯了(或者,如果你是正確的) – RPGillespie 2015-02-10 19:53:10

+0

我做與@StenSoft在他的回答中提到的一樣。 – 2015-02-10 20:14:44

回答

1

CALL存儲在堆疊兩個單詞,因此通過改變4. SP堆棧,以便更多的數據被存儲其值增加在此架構長大。所以最後,你可以計算出結果:

0x16e + 4 = 0x172