A 回答 (6件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
たとえば日本人が英単語で「add」と命令された場合に
頭の中で「追加」と訳して行動を行う場合を想定します。
英単語「add」は26種類のアルファベットa~zのパターンで表現されていますが、
機械語では0と1の2種類のパターンでこれを表現します(仮にこれを「01001101」とします)
ここで上記「日本人」の部分を「CPU」に置き換え、命令を目で見た情報を一時的に記憶する脳の一部分を「命令レジスタ」とした場合・・
CPUが(命令レジスタ経由)で「01001101」と命令された場合に、
内部でこれを「追加」と訳して行動(処理)を行う
・・というようなイメージとなります。
この「01001101」を「追加」に訳す部分が「解読」となり、それを行う工程をデコードと呼んでいます。
No.4
- 回答日時:
既に、何人かの方が書かれておられるようですが....
1.命令レジスタ自体が複数ビットを格納出来ます。
そのビット数は8ビットの倍数である事が多いです。
2.命令レジスタ自体に格納された0,1の組み合わせで、何をするかが決められています。
例えば、「足し算」、「引き算」等々。また、CPUの種類により異なる事が多いです。
No.3
- 回答日時:
多分、疑問に思われていることは0,1以下に分解できないから
解読という意味合いが納得出来ない、ということだと思います。
この場合の解読というのは、
命令コードの部分は命令によってビット数が違ったり、
レジスタと命令内のコードだけで演算できたり、
オペランドをアドレスとしてそのアドレス内のデータとレジスタを演算したり、
と命令の最終実行まで段階を追って手続きが必要なことを言っていると思います。
更に言うと、機械語は最終段階と思われるかもしれませんが、機械語の実行は
具体的にはマイクロ命令が行います。
例えば機械語でL(ロード)というとあるアドレスの値をレジスタに持ってきますが、
これはマイクロ命令で、どこそこのゲートを何マイクロ秒開けろ、とかの命令の
組合せで実行されます。
No.2
- 回答日時:
コンピュータにも種類ごとに命令コードが違うので、一例としてZ-80の場合で説明します
命令の単位は1バイト(8ビット)なので 256種類の命令を表せます
(命令によっては次のデータ、アドレス等が続き4バイトになるときもある)
上位2ビットが、01 ならばレジスタ間の転送命令を表し、続く3ビットで転送されるレジスタ名
次の3ビットで転送するレジスタ名を表します
このように命令の並びは規則性があり、上位ビットを見れば何の命令か判断できます、(一部例外もあります)
01XX XYYY LD レジスタ間転送命令
1000 0XXX ADD 加算命令 XXXはレジスタを表す
1000 1XXX ADC 加算(Cy含む)命令
1001 0XXX SUB 減算命令
1001 0XXX SBC 減算(Cy含む)命令
1010 0XXX AND
1010 1XXX XOR
1011 0XXX OR
1011 1XXX CP
のように上位ビットで各処理に振り分けています。
http://poke-com.jimdo.com/z80-機械語に触れる/z80-コード一覧/
No.1
- 回答日時:
機械語は確かにただの数値の羅列です。
しかし、その数値にはCPUが行うべき処理が割り振られています。たとえば「何もしない」には00,「1を足す」には01といった具合に。
ここで問題なのはその次です。「2を足す」という処理を何らかの数値に割り当てるべきでしょうか?
もし割り当ててしまったら、じゃあ3は? 4は? という具合にキリがありません。
そこで、「この命令の次の数を足す」という命令を用意して(02に割り当てます)、02 02としてやれば2を足す処理になります。
さて、同じように03に「1を引く」を、04に「この命令の次の数を引く」を割り当てたとします。
その状態で、次のような数値の羅列があったとして、これをどう解釈しましょうか。
01 02 04 03
まず、最初の01を命令レジスタに格納し、その値に対応する処理が何かを見ます。これは「1を足す」ですから1を足します。
次に、02を命令レジスタに格納し、その値に対応する処理が何かを見ます。これは「この命令の次の数を足す」ですから4を足します。
次に、04……は前の命令で使ったのでその次の03を命令レジスタに格納し、その値に対応する処理が何かを見て、「1を引く」を実行します。
上記の流れの中で、数値から実行すべき処理とその処理の長さを割り出している箇所がありますよね。
その箇所のことを「解読」と言っているのです。
この回答への補足
回答ありがとうございます。
ご説明では、「02」は、「この命令の次の数を足す」という命令の意味を持つ場合と、単に「2」という数字を表す場合があるということでしょうか?
同じく「04」にも「この命令の次の数を引く」という意味と「4」という数字の意味があるということでしょうか?
「02」や「04」が表しているのが命令であるのか数字であるのかは、レジスタに読み込まれた時に「02」または「04」が前の命令の対象になっているかによって判断される、ということですか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- システム CPUの問題について 2 2022/07/09 12:04
- その他(コンピューター・テクノロジー) 量子コンピュータの動作原理がわかりません。同じビットが、1でも0でも有って良いだろうか? 3 2023/02/04 03:20
- 事件・事故 ガーシー容疑者にパスポート返納命令。なぜ? ガーシー容疑者だけ特別扱いなのか? 7 2023/03/18 08:16
- その他(プログラミング・Web制作) パイプラインに詳しい方 5 2022/07/04 16:47
- 弁護士・行政書士・司法書士・社会保険労務士 翻訳された契約書の難解な日本語 2 2023/08/09 23:41
- その他(悩み相談・人生相談) 「はぁ…」とか言わずに中身教えてくあげればいいのに。 って提案の意味で伝えたら 相手は、命令するなと 2 2022/07/11 15:27
- アニメ 「悪役令嬢」の定義は? 2 2023/03/23 11:00
- 政治 ーーーーーーーーーーーーーーーーーーーーー 2022年10月22日 自民党解党命令 自民党は旧統一教 3 2022/10/22 14:18
- 情報処理技術者・Microsoft認定資格 (パイプライン処理)基本情報技術者の演習問題について 1 2023/03/11 17:47
- CPU・メモリ・マザーボード CPUがメモリ上の命令を実行する流れについての質問です。 3 2023/05/05 01:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでのコントロール操作
-
MIPS アセンブリ言語
-
RPG言語 SQL文とREAD命令、どっ...
-
CPU、Z80からステート数から...
-
アセンブリ言語で。
-
【有効数字について】 授業で、...
-
PDFからワードへ→文字がくずれる
-
KBとMB
-
文字の容量(サイズ)についての...
-
文字化けはなぜ日本語が入って...
-
EXCELでの16進数取り出し、上...
-
KBのMB違いって
-
行間があいているワード文書の...
-
SSDのデータがビット落ちにより...
-
1Mbpsって毎秒何キロバイト?
-
かけ算(わり算)と足し算(引き算...
-
ワードの改行について
-
Mbyteは何KB?
-
GB と Gbの違いの意味
-
メールをワードにしたとき、余...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラム言語FortranとCの違...
-
命令網羅率の計算問題です
-
組み込みCプログラムで実数型
-
VBAでのコントロール操作
-
COM1(RS232C)とUSB仮想COMポー...
-
64ビット化による処理速度低下...
-
なぜ、i++なのか?(ものすごく...
-
H8Sで割り込み発生時の飛び先ア...
-
アセンブリ言語で。
-
MIPS と クロック周波数の換算方法
-
x86系のCPUとは?
-
PICマイコンのプログラムについ...
-
arduino
-
応用情報技術者試験問題の解き...
-
CPUのHTについて教えてください。
-
MFCのエディットボックス上書き...
-
VBSとVBA
-
C言語についてです 整数nを入力...
-
CPU、Z80からステート数から...
-
+=と÷=の処理速度の謎を教え...
おすすめ情報