- 締切済み
ニーモニックを使った命令の2進数表記
計算機の、ニーモニックを使った命令を二進数表現するという問題なのですが、LOAD、STOREなどのニーモニックについては教科書に載っているのでわかりますが、以降のレジスタ、番地指定などの2進数表現が教科書に具体的に載っておらず、困ってます。 回答宜しくお願いします。 (問題は、r0の内容を300+r1番地に格納する命令です)
- hatouiru
- お礼率78% (87/111)
- その他([技術者向] コンピューター)
- 回答数1
- ありがとう数1
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Tacosan
- ベストアンサー率23% (3656/15482)
そりゃあ「具体的」には載ってないかもね. でも, アドレッシングモードの説明のところなどに指定方法は書いてあるはずだから, 「応用できていない」だけのはずです.
関連するQ&A
- コンピュータアーキテクチャの問題です
(1)レジスタ、メモリに初期状態が以下表である時 レジスタ GR0 7 GR1 2 番地 データ 100 10 110 8 120 3 5÷3の計算を行うための一連の命令をニーモニック表現で示せ 値はすべて10進数とする。 ただし以下の3条件に従うこと 1.最初の命令をLI1、100とする 2.計算結果は120番地に格納すること 3.最低1回は命令でXRを指定すること。 (2)ハードウェア障害によってGR2とメモリの120番地が使用不能となったものとして、5÷3の計算を行うための一連の命令をニーモニック表現で示せ。 初期状態は(1)の開始時と同様とし、(1)とはことなり最初の命令は制限がない。 計算結果は110番地に格納すること。 という問題ですがわかる人教えてください。よろしくお願いします
- ベストアンサー
- その他([技術者向] コンピューター)
- コンピュータアーキテクチャの問題です
(1)レジスタ、メモリに初期状態が以下表である時 レジスタ GR0 7 GR1 2 番地 データ 100 10 110 8 120 3 5÷3の計算を行うための一連の命令をニーモニック表現で示せ 値はすべて10進数とする。 ただし以下の3条件に従うこと 1.最初の命令をLI1、100とする 2.計算結果は120番地に格納すること 3.最低1回は命令でXRを指定すること。 (2)ハードウェア障害によってGR2とメモリの120番地が使用不能となったものとして、5÷3の計算を行うための一連の命令をニーモニック表現で示せ。 初期状態は(1)の開始時と同様とし、(1)とはことなり最初の命令は制限がない。 計算結果は110番地に格納すること。 ニーモニック表現 命令 OP 16進 説明 表記 ロード LD 10 r←(efa) LD GR,adr,XR ストア ST 20 r→(efa) ST GR,adr,XR 加算 AD 70 r←r+(efa) AD GR,adr,XR 減算 SB 75 r←r-(eaf) SB GR,adr,XR 乗算 MP 85 r←r×(eaf) MP GR,adr,XR 除算 DV 55 r←r÷(eaf) DV GR,adr,XR 即値 LI 30 r←ID LI GR, ID という問題ですがわかる人教えてください。よろしくお願いします
- ベストアンサー
- その他([技術者向] コンピューター)
- アドレス指定方式での、命令語が参照する番地
16進数で”C13B0206”という32ビットの命令語があります。 <命令語の仕様> 0~7ビット:命令指示部 8~10ビット:レジスタ 11~15ビット:アドレス修飾部 16~31ビット:番地 <アドレス修飾と参照番地の関係> 00 0固定 直接アドレス (11,12の値が00、13~15の値が0固定のとき、直接アドレス。) 01 0固定 間接アドレス 10 インデックスレジスタ インデックスレジスタ+番地の値 11 インデックスレジスタ インデックスレジスタ+番地が示す内容の値 <主記憶、レジスタの状態> ●主記憶に格納されている値(16進数) 番地(16進数)が 202,203,204,205,206,208,209,20A...の順に、それぞれの格納値は、 203,204,205,206,208,209,20A,20B...。 ●インデックスレジスタに格納されている値(16進数) インデックスレジスタ番号(16進数)が1,2,3,4,5… の順に、それぞれの格納値は、 0,1,2,3,4…。 (1) アドレス修飾部のインデックスレジスタ番号。 命令語の”C13B0206”で、アドレス修飾部にあたるのが”3B”。00111011(2進数)。8~10ビットの001がレジスタになるから、3。 (2)命令の番地部の番地の値(16進数) 命令の番地部の番地の値。命令部では、”0206”。ちょうど16進数なので、206。 (3) 命令が最終的に参照する番地。 上の、<主記憶、レジスタの状態>より、11~15ビットが”1011”。 インデックス番号が11(2進数)なので、3(16進数)。インデックスレジスタ番号が3のとき、格納されているのは2。番地の値である206と3を合わせ、209。 最終的に参照される番地は209。 (1)(2)(3)、自分の解き方が正しいのかどうか自信がありません。どなたか補足、訂正などありましたら、よろしくお願いいたします。
- ベストアンサー
- その他([技術者向] コンピューター)
- 命令
lw r1,0(r4) 上記のような命令を実行したとします。レジスタ群r4には32ビット00000000000000000000000000100100が入っています。これは10進数にすると36なので0(r4)=0+36=36になります。 そしてメインメモリのアドレス36番地には10000001111111111111111111111111が入っていてこれをレジスタ群r1に移動します。 けれどもレジスタ群r1には00000000000000000000000000011000が最初から入っています。 ここで質問なんですがこの場合アドレス36番地の値と最初から入っていたレジスタ群r1の値は足さなければならないのですか? それともアドレス36番地の値をそのままレジスタ群r1につっこんでもいいのでしょうか?
- 締切済み
- ハードウェア・サーバー
- 機械語の命令について
例えばアセンブラでいうところの LD xxxx という命令は、 「xxxx番地のデータをレジスタに記憶する。」 らしいのですが、LDという命令もアドレスxxxxも2進数 で表現されていますか? そうだとして、どんな論理回路で、最終的にレジスタの電圧が1になるのでしょうか^-^? よろしくお願いします。
- ベストアンサー
- その他(パソコン)
- ニーモニックから機械語へ変換する簡易アセンブラ
ニーモニックから機械語へ変換する簡易アセンブラ 初期のアセンブラにおいて、ニーモニックから機械語への変換はどのようなアルゴリズムで行われていたか知りたいのですが、H8マイコンなどで実際にコードを書いたウェブサイトなどはありますでしょうか? またイメージとしては、メモリに格納された文字コードを1バイトずつ命令変換テーブルと比較し、同じ場合はそのオペコードを出力するといったようなアルゴリズムになると思うのですが、これは正しいでしょうか? 例えば具体的に「MOV A B(BレジスタからAレジスタへの転送命令)」を機械語へ変換する処理を考えると、下記のようになると思います。 [命令変換テーブル] OPコード(1バイト) 文字列長(1バイト) 文字コード : 文字コード を命令数分用意する。 (1)ニーモニックの左端から1文字(1バイト)ずつ、まず命令変換テーブルの最初の命令の文字コードと比較が行われる (2)空白まで全ての文字コードが一致すれば、一致した命令変換テーブルのOPコードを得る (3)一致しない場合は、命令テーブルの次の命令の文字コードと比較していく((1)にループする) (4)命令テーブルの最後まで一致するものがなければエラー 高級言語ではこのような処理はブラックボックスになっていると思いますが、アセンブラレベルでどのように実現されているか解説が見当たらなかっため質問させて頂きました。どうぞよろしくお願い致します。
- ベストアンサー
- その他(プログラミング・開発)
- 機械語
番地機械語ニモニック表記コメント 0 11101000 Shift 8 ;無駄な命令.ただしAccumulatorの内容は0になる 1 10011111 Store 31 ; Accumulator の内容を31 番地へ格納 2 01100001 Load 1 ; 1 番地のデータ(Store 命令) をAccumulator へ 3 01000110 Sub 6 ; 6 番地の内容(= 1) をAccumulator から引く 4 10000001 Store 1 ; 引いた結果を1 番地に格納 5 01100111 Load 7 ; 7 番地の内容(= 0) をAccumulator へ 6 00000001 Jump 1 ; 1 番地にジャンプする 7 00000000 0 ; 0 データの保管場所 このプログラムが停止するのはどんなときですか? これを実行したら3分くらい止まらなかったのですが・・・
- ベストアンサー
- その他(プログラミング・開発)
- コンピューターシステム コンピューターへの命令 命令群
コンピューターシステムの問題が解けなくて困っています。 (1)つぎの命令群を順に実行すると、どういう結果が得られるか。 CLRはオペランドをクリアする(0にする)という命令である。 CLR R0 CLR (R0)+ CLR (R0)+ CLR (R0)+ CLR (R0)+ という問題では、 CLR R0 R0を0にする CLR (R0)+ 0000番地を0に,R0を0002にする CLR (R0)+ 0002番地を0に,R0を0004にする CLR (R0)+ 0004番地を0に,R0を0006にする CLR (R0)+ 0006番地を0に,R0を0008にする CLR (R0)+ 0008番地を0に,R0を000Aにする って感じで進んでいくってわかるのですが、 (2)次の命令群を実行した結果を説明せよ。 CLR R0 ADD #1,R0 ADD #2,R0 ADD #3,R0 ADD #4,R0 (3)次の命令群を実行した結果を説明せよ。 MOV #100,R1 CLR -(R1) CLR -(R1) CLR -(R1) CLR -(R1) (4)次の命令群を実行した結果を説明せよ。 CLR @#100 というこの(2)(3)(4)が解けなくて困っています。 誰か教えてください。 よろしくお願いします。 できれば(1)の解答のような感じで書いていただけるとありがたいです。
- 締切済み
- その他([技術者向] コンピューター)
- ワンボードマイコンMP-Z80を用いたプログラミング
今、ワンボードマイコンMP-Z80でプログラミングの勉強をしています。 まだ、基本的なところなんですが、次の問題がわかりません。 1)8100H番地から81FFH番地までの100Hバイト分のRAM領域を0とする プログラムを作成せよ。 2)1から10までの整数の和を求め、8100H番地に格納せよ。 3)8100H番地から810FH番地に格納されているデータを8ビットの符号付 絶対値表現とみなしたとき、各データを2の補数表現に変換し、8200H番地から格納せよ。 この三つの問題なんですが、1)は全部に0を入れるということでしょうか? これらの問題は繰り返し命令の範囲の問題なので、繰り返し命令を 使うそうです。ヒントだけでも教えてください。
- 締切済み
- その他(プログラミング・開発)
- アキュムレータに格納される数値は・・・?
次の問題の解き方をできるだけ詳しく教えてください。 主記憶装置の100番地~104番地の内容は以下のようであるとき、LD/(102)を実行した結果アキュムレータに格納される数値は? LD命令は指定した有効アドレスの内容をアキュムレータに格納するめいれいであり、(X)は間接アドレス指定である。すなわちX番地の内容を 有効アドレスにするという意味である。 103 102 100 101 104 100番地 101番地 102番地 103番地 104番地
- ベストアンサー
- その他([技術者向] コンピューター)
お礼
回答ありがとうございます。 もう一度先生に質問して、なんとかできました。