プロが教えるわが家の防犯対策術!

平成11年春 問3
http://www7b.biglobe.ne.jp/~a0mediac/A99s/A99s03 …

n+1番地の語、つまりadrの値の計算方法が分かりません。
空欄 a はどうやって分かるのでしょうか?

解説にあるように、
>>EXIT命令の機械語コード1000 1000 0000 0000 1100 0000 0000 0000は、最初の1語目が
>>0000 0000 0001 0000番地に、2語目が次の0000 0000 0001 0001番地に格納されている。

とありますが、なぜ
最初の1語が0000 0000 0001 0000番地に格納されていることが分かるのでしょうか?

よろしくお願いします。

A 回答 (1件)

旧 第二種情報処理技術者試験 平成11年 春期 問3


(現 基本情報技術者試験)

問題文の次の記述をヒントにして〔機械語のプログラム〕を読解していく。

> 各機械語命令の命令コードは、次のとおりである。
> ADD命令  0100 1100
> LD命令   0100 0000
> LEA命令  0100 0010
> ST命令   0100 0001
> EXITはマクロ命令であり、
> 1000 1000 0000 0000 1100 0000 0000 0000の2語からなる。
> START、ENDは擬似命令であり、機械語に変換されない。

まず,〔機械語のプログラム〕全13行分のうち前半9行分を読解する。
「n番地の語」に示された左8bit分と〔CASLのプログラム〕との対応は次のとおり。
「命令語は2語長である」ので,「n番地の語」と「(n+1)番地の語」を合わせた横一行分が1命令に対応する。

1行目 0100 0001 … ST GR1,SAGR1
2行目 0100 0001 … ST GR3,SAGR3
3行目 0100 0010 … LEA GR3,2
4行目 0100 0000 … LD GR1,X
5行目 0100 1100 … ADD GR1,Y(解答欄a)
6行目 bbbb bbbb … ST GR1,Z,GR3(解答欄b)
7行目 0100 0000 … LD GR1,SAGR1
8行目 0100 0000 … LD GR3,SAGR3
9行目 1000 1000 … EXIT

以上より,2語から成るEXIT命令が格納されている位置は,
〔機械語のプログラム〕全13行における
上から9行目の左半分(n番地の語)と右半分((n+1)番地の語)であることが判明した。
そのアドレスは,
上から9行目の番地n=0000 0000 0001 0000と
それに+1したもの,すなわち0000 0000 0001 0001である。

--------
残った後半4行分と〔CASLのプログラム〕中の領域ラベル名との対応は次のとおり。
SAGR1, SAGR3, X, Y はそれぞれ1語の領域,Zは4語の領域である。

10行目 <--- --SAGR1-- ---> <--- --SAGR3-- --->
11行目 XXXX XXXX XXXX XXXX YYYY YYYY YYYY YYYY
12行目 ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ
13行目 ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ ZZZZ

さて,前半で読解したように,
解答欄aは「ADD命令の2語目(=adr オペランドアドレス)」
すなわち領域Yの格納アドレスが空欄となっている。

領域Yが確保されている位置は,
〔機械語のプログラム〕全13行における
上から11行目(下から3行目)の右半分((n+1)番地の語)であることが上図より判明している。
そのアドレスは,
上から11行目の番地n=0000 0000 0001 0100 に+1したもの,
すなわち【オ】 0000 0000 0001 0101 である。
    • good
    • 0
この回答へのお礼

とっても分かりやすかったです。
おかげで、理解できました。

有難うございました。

お礼日時:2012/10/12 00:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!