1

バイト アドレス指定可能なメモリを備えたプロセッサを考えてみましょう。プログラム カウンター (PC) とプログラム ステータス ワード (PSW) を含むすべてのレジスターのサイズが 2 バイトであると仮定します。メイン メモリのスタックは、メモリ位置 (0100)hex から実装され、上方向に成長します。スタック ポインター (SP) は、スタックの一番上の要素を指します。SP の現在の値は (016E​​)hex です。CALL 命令は 2 ワードで構成され、最初のワードはオペコードで、2 番目のワードはサブルーチンの開始アドレスです (1 ワード = 2 バイト)。CALL 命令は次のように実装されます。

  1. PC の現在の値をスタックに格納する
  2. PSWレジスタの値をスタックに格納
  3. サブルーチンの開始アドレスをPCにロード

CALL 命令のフェッチ直前の PC の内容は (5FA0)hex です。CALL命令実行後のスタックポインタの値は、

A.016A

B.016C

C.0170

D.0172

この質問は、GATE 2015 コンピューター サイエンスで出題されました。

D を回答としてマークしました。回答が正しいかどうかわからないため、回答を確認するのを手伝ってください。

前もって感謝します。

4

1 に答える 1

2

CALLスタックに 2 ワードを格納するため、SP が 4 だけ変化します。スタックはこのアーキテクチャで成長するため、より多くのデータが格納されるにつれてその値が増加します。したがって、最終的に結果を計算できます。

0x16e + 4 = 0x172

于 2015-02-10T19:59:29.293 に答える