mirror of
https://github.com/danbulant/Cosmos
synced 2026-05-31 13:21:05 +00:00
43 lines
1.8 KiB
C#
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
|
|
|
|
}
|
|
}
|
|
}
|