私は 6502 用のエミュレーターを作成していますが、基本的に、レジスターの 1 つ (主に X と Y) にオフセットが保存されている命令がいくつかあり、分岐命令は符号付き 8 ビット整数を使用するため、レジスタは値を 8 ビット符号付きのままにしますか? これを意味する:
switch(opcode) {
//Bunch of opcodes
case 0xD5:
//Read the memory area with final address being address + x offset
int rempResult = a - readMemory(address + x);
//Comparing some things, setting/disabling flags
//Incrementing program counter and cycles/ticks
break;
//More opcodes
}
この状況で x = 0xEE としましょう。通常のバイナリでは、これは x = 238 を意味します。ただし、6502 では、分岐命令はメモリ アドレスへのジャンプに符号付きオフセットを使用するため、この場合 238 は -18 として解釈されるのか、それとも単に通常の符号なし 8 ビット値?