Cosmos/source/Indy.IL2CPU/Assembler/x86/Move.cs
mterwoord_cp 5e882b6182
2008-11-09 18:02:48 +00:00

43 lines
1.8 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Indy.IL2CPU.Assembler.X86 {
[OpCode("mov")]
public class Move: InstructionWithDestinationAndSourceAndSize {
public static void InitializeEncodingData(Instruction.InstructionData aData){
//aData.DefaultSize = InstructionSize.DWord;
aData.EncodingOptions.Add(new InstructionData.InstructionEncodingOption {
OpCode = new byte[] { 0xB0 },
//NeedsModRMByte=true,
AllowedSizes=InstructionSizes.DWord,
OperandSizeByte=0,
OperandSizeBitShiftLeft = 3,
DestinationReg = Guid.Empty,
DestinationRegByte = 0,
SourceImmediate = true
}); // immediate to register
//aData.EncodingOptions.Add(new InstructionData.InstructionEncodingOption {
// OpCode = new byte[] { 0xC6 },
// //NeedsModRMByte=true,
// //OperandSize=InstructionSize.Word,
// AllowedSizes=InstructionSizes.Word,
// OperandSizeByte = 0,
// OperandSizeBitShiftLeft = 0,
// SourceImmediate = true
//}); // immediate to memory
aData.EncodingOptions.Add(new InstructionData.InstructionEncodingOption {
OpCode = new byte[] { 0xC6 },
NeedsModRMByte=true,
AllowedSizes = InstructionSizes.Word,
OperandSizeByte = 0,
OperandSizeBitShiftLeft = 0,
SourceImmediate = true,
DestinationRegByte=1,
DestinationMemory = true
}); // immediate to memory
}
}
}