1

レジスタ A (Intel 8085 マイクロプロセッサ) に 32H をロードする命令 MVI A,32H を検討してください。

私の本によると、これは 2 バイトの命令で、最初のバイトがオペコードで、2 番目のバイトがオペランドです。最初のバイトは 0011 1110 (16 進数で 3E) で、2 番目のバイトは 0011 0010 (16 進数で 32) です。

オペコード部分がどのように正確にマシンコードに変換されるかについて、私は混乱しています。つまり...「0011 1110」のどの部分が「MVI」を表し、そのどの部分がレジスタ A がロードされることを示しているのでしょうか? 「3E」はマイクロプロセッサに両方の情報をどのように伝えますか? つまり、データとターゲットレジスタをロードする必要があります。それとも、このオペコード全体が事前定義されており、オペコードで「MVI」と「ターゲットレジスタ」を分離できないということですか?

私の質問が理にかなっていることを願っています笑。

4

2 に答える 2

3

http://www.pastraiser.com/cpu/i8085/i8085_opcodes.html

全体 0x3E は MVI A を意味します。

上記のリンクの表から(信頼できると仮定して)

0x0E MVI C  00001110
0x1E MVI E  00011110
0x2E MVI L  00101110
0x3E MVI A  00111110

0x06 MVI B  00000110
0x16 MVI D  00010110
0x26 MVI H  00100110
0x36 MVI M  00110110

そのチャートの色分けは、2 ミリ秒ビットが 00 の場合はオペコード デコーダーを示し、下位 2 ビットが 10 の場合はビット 2 が 1 の場合は MVI であり、ビット 3 ~ 6 がどのレジスタを決定するかを示します。基本的に 0b00rrr110 は MVI です。

于 2013-01-10T01:08:14.273 に答える