Intel8080エミュレーションエミュレータ101に関するこのガイドを読んでいて、自分が書いたものを確認するためにコードを読んでいるときに、これに遭遇しました。
case 0x36: //MVI M,byte
{
//AC set if lower nibble of h was zero prior to dec
uint16_t offset = (state->h<<8) | state->l;
state->memory[offset] = opcode[1];
state->pc++;
}
break;
Intel 8080/8085アセンブリ言語プログラミングという本から、私はMVIについてこれを読みました
この命令は、2番目のバイトに格納されているデータをHとLによってアドレス指定されたメモリ位置にコピーします。Mは、HとLのレジスタペアへのシンボリックリファレンスです。
だから、オフセットはHとLによってアドレス指定されたメモリ位置であると推測していますが、なぜそのようにするのですか?あれは(state->h<<8) | state->l
ありがとう