public void G(DoubleArgCmd cmd, AsmArg lhs, double rhs)
        {
            var rhsDoubleVal = rhs.ToString(CultureInfo.InvariantCulture);
            var dot          = rhsDoubleVal.Contains('.') ? "" : ".";

            _out.WriteLine($"{cmd.ToString().ToLowerInvariant()} {lhs.Val}, {rhsDoubleVal}{dot}");
        }
 //single
 public void G(SingleArgCmd cmd, AsmArg arg)
 {
     _out.WriteLine($"{cmd.ToString().ToLowerInvariant()} {arg.Val}");
 }
 public void G(DoubleArgCmd cmd, AsmArg lhs, string rhs)
 {
     _out.WriteLine($"{cmd.ToString().ToLowerInvariant()} {lhs.Val}, {rhs}");
 }
 public static AsmArg Byte(AsmArg arg)
 {
     return(new AsmArg($"byte {arg.Val}"));
 }
 public static AsmArg QWord(AsmArg arg)
 {
     return(new AsmArg($"qword {arg.Val}"));
 }
 public static AsmArg Der(AsmArg arg)
 {
     return(new AsmArg($"[{arg.Val}]"));
 }