1

私は命令のデコードに挑戦しています.今のところ、80x86 16ビットマシンでは、ソースオペランドとして即値を持たない命令のデコードに多くの問題はありません.ソースオペランドがレジスタまたは位置メモリですが、即値です。次の命令は、次のようにデコードします。

mov ax, 3

101110|11| |11|000|000| 00000011 -> 3 with sign expansion
      |       |   |  register AX
      s = 1   |  null
      w = 1   |
              the second operand is a register

代わりに、それは公平ではありません。これは正しいデコードです:

mov ax, 3

10111000 00000011 0000000

ソースオペランドが即値であると仮定して、デコードがどのように機能するかを誰かに説明してもらえますか?

4

1 に答える 1