2

私は C でゲームボーイ エミュレーターに取り組んでいます。

http://realboyemulator.files.wordpress.com/2013/01/gbcpuman.pdf

上記の PDF の 66 ページを参照し、Opcode 0x7E -- LD,R1,R2 に対応する命令を見ると、この命令について興味があります..

GB には、A、B、C、D、E、F、H、L の 8 つの 8 ビットレジスタがあります。AF、BC、DE、HL の 2 つを連結して 16 ビットのレジスタを作成できます。

16 ビット値 (HL) を 8 ビット レジスタ (A) に格納しようとしているように見えるため、Opcode 0x7E について混乱しています。

LD、A、(HL)

このドキュメントを誤解していますか? このような命令が存在する理由を誰かが説明できますか? LD、A、L に置き換えることはできませんか?

4

1 に答える 1

6

アドレスは 16 ビットですが、1 バイト (8 ビット) を指し、それをレジスタ A (以下の例ではレジスタ D) に入れます。

LD D, (HL)

この命令は、レジスタ ペア HL のアドレスにあるバイトを D にロードします。

http://gameboy.mongenel.com/dmg/lesson1.htmlでこれを見つけました

すべてのレッスンはこちら http://gameboy.mongenel.com/asmschool.html

于 2014-01-05T03:20:59.260 に答える