public StackVariable(VariableSize size, bool sign = false)
 {
     Base   = new Label("__TEMP__");
     Offset = -1;
     Size   = size;
     Sign   = sign;
 }
Beispiel #2
0
        public static string RegisterSuffix(this VariableSize size)
        {
            switch (size)
            {
            case VariableSize.Byte:
                return("b");

            case VariableSize.Word:
                return("w");

            case VariableSize.Dword:
                return("d");

            default:
                return("");
            }
        }
Beispiel #3
0
        public static string Asm(this VariableSize size)
        {
            switch (size)
            {
            case VariableSize.Byte:
                return("BYTE");

            case VariableSize.Dword:
                return("DWORD");

            case VariableSize.Qword:
                return("QWORD");

            case VariableSize.Word:
                return("WORD");
            }
            throw new Exception();
        }
Beispiel #4
0
 public Variable(VariableSize size, bool signed)
 {
     Size   = size;
     Signed = signed;
     Label  = Label.Local();
 }
Beispiel #5
0
 public string WithSize(VariableSize size)
 {
     return(Name + size.RegisterSuffix());
 }
Beispiel #6
0
 public Constant(VariableSize size, long value)
     : base(size, true)
 {
     Value = (ulong)value;
 }
Beispiel #7
0
 public Constant(VariableSize size, ulong value)
     : base(size, false)
 {
     Value = value;
 }