public void CheckMove_A0i_ToA1() { // 00ss aaa0 01mm mxxx // 0001 0010 0101 1000 0x1258 // MOVEM <ea>,An // MOVEM (A0)+,A1 byte[] data = new byte[] { 0x12, 0x58 }; MegadriveState state = new MegadriveState(new Data(data), 0x00000000, 0x00000000, 0x000000, 0x3FFFFF, 0x0FF0000, 0xFFFFFF); state.WriteByte(0x00FF0000, 0xAA); state.WriteByte(0x00FF0001, 0xBB); state.WriteAReg(0x0, 0x00FF0000); state.FetchOpCode(); var opcode = new MOVEA(state); Assert.That(opcode.Assembly, Is.EqualTo($"MOVEA (A0)+,A1")); Assert.That(opcode.Size, Is.EqualTo(Size.Word)); Assert.That(state.ReadAReg(0x0), Is.EqualTo(0x00FF0002)); Assert.That(state.ReadAReg(0x1), Is.EqualTo(0xAABB)); }
public void CheckMove_dA0_ToA1() { // 00ss aaa0 01mm mxxx // 0010 0010 0110 0000 0x2260 // MOVEM <ea>,An // MOVEM -(A0),A1 byte[] data = new byte[] { 0x22, 0x60 }; MegadriveState state = new MegadriveState(new Data(data), 0x00000000, 0x00000000, 0x000000, 0x3FFFFF, 0x0FF0000, 0xFFFFFF); state.WriteByte(0x00FF0000, 0xAA); state.WriteByte(0x00FF0001, 0xBB); state.WriteByte(0x00FF0002, 0xCC); state.WriteByte(0x00FF0003, 0xDD); state.WriteAReg(0x0, 0x00FF0004); state.FetchOpCode(); var opcode = new MOVEA(state); Assert.That(opcode.Assembly, Is.EqualTo($"MOVEA -(A0),A1")); Assert.That(opcode.Size, Is.EqualTo(Size.Long)); Assert.That(state.ReadAReg(0x0), Is.EqualTo(0x00FF0000)); Assert.That(state.ReadAReg(0x1), Is.EqualTo(0xAABBCCDD)); }
public void CheckMoveA0ToA1() { // 00ss aaa0 01mm mxxx // 0001 0010 0100 1000 0x1248 // MOVEM <ea>,An // MOVEM A0,A1 byte[] data = new byte[] { 0x12, 0x48 }; MegadriveState state = new MegadriveState(new Data(data), 0x00000000, 0x00000000, 0x000000, 0x3FFFFF, 0x0FF0000, 0xFFFFFF); state.WriteAReg(0x0, 0xAABBCCDD); state.FetchOpCode(); var opcode = new MOVEA(state); Assert.That(opcode.Assembly, Is.EqualTo($"MOVEA A0,A1")); Assert.That(opcode.Size, Is.EqualTo(Size.Word)); Assert.That(state.ReadAReg(0x1), Is.EqualTo(0xCCDD)); }
public AnonymousInstruction1(MOVEA parent) { this.parent = parent; }