Cosmos/source/Indy.IL2CPU/Assembler/x86/_Infra/InstructionWithDestinationAndSource.cs
mterwoord_cp ffc211c161
2008-11-08 09:00:58 +00:00

54 lines
No EOL
1.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Indy.IL2CPU.Assembler.X86 {
public class InstructionWithDestinationAndSource : InstructionWithDestination {
public ElementReference SourceRef {
get;
set;
}
public Guid SourceReg {
get;
set;
}
public uint SourceValue {
get;
set;
}
public bool SourceIsIndirect {
get;
set;
}
public int SourceDisplacement {
get;
set;
}
protected string GetSourceAsString() {
string xDest = "";
if (SourceRef != null) {
xDest = SourceRef.ToString();
} else {
if (SourceReg != Guid.Empty) {
xDest = Registers.GetRegisterName(SourceReg);
} else {
xDest = "0x" + SourceValue.ToString("X").ToUpperInvariant();
}
}
if (SourceDisplacement != 0) {
xDest += " + " + SourceDisplacement;
}
if (SourceIsIndirect) {
return "[" + xDest + "]";
} else {
return xDest;
}
}
}
}