public void VisitPrimitive(PrimitiveType pt) { switch (pt.Size) { case 1: fmt.WriteKeyword("db"); fmt.Write("\t"); fmt.Write(string.Format("0x{0:X2}", rdr.ReadByte())); fmt.WriteLine(); return; case 2: fmt.WriteKeyword("dw"); fmt.Write("\t"); fmt.Write(string.Format("0x{0:X4}", rdr.ReadUInt16())); fmt.WriteLine(); return; case 4: fmt.WriteKeyword("dd"); fmt.Write("\t"); fmt.Write(string.Format("0x{0:X8}", rdr.ReadUInt32())); fmt.WriteLine(); return; case 8: fmt.WriteKeyword("dq"); fmt.Write("\t"); fmt.Write(string.Format("0x{0:X16}", rdr.ReadUInt32())); fmt.WriteLine(); return; default: bool newLine = false; fmt.WriteKeyword("db"); fmt.Write("\t"); fmt.Write(string.Format("0x{0:X2}", rdr.ReadByte())); for (int i = 1; i < pt.Size; ++i) { if (newLine) { newLine = false; fmt.WriteLine(); fmt.Write("\t"); fmt.WriteKeyword("db"); fmt.Write("\t"); fmt.Write(string.Format("0x{0:X2}", rdr.ReadByte())); } else { fmt.Write(", "); fmt.Write(string.Format("0x{0:X2}", rdr.ReadByte())); } newLine = (rdr.Address.ToLinear() & 0xF) == 0; } fmt.WriteLine(); break; } }
public void VisitPrimitive(PrimitiveType pt) { switch (pt.Size) { case 1: fmt.WriteKeyword("db"); fmt.Write("\t"); fmt.Write(string.Format("0x{0:X2}", rdr.ReadByte())); fmt.WriteLine(); return; case 2: fmt.WriteKeyword("dw"); fmt.Write("\t"); fmt.Write(string.Format("0x{0:X4}", rdr.ReadUInt16())); fmt.WriteLine(); return; case 4: fmt.WriteKeyword("dd"); fmt.Write("\t"); fmt.Write(string.Format("0x{0:X8}", rdr.ReadUInt32())); fmt.WriteLine(); return; case 8: fmt.WriteKeyword("dq"); fmt.Write("\t"); fmt.Write(string.Format("0x{0:X16}", rdr.ReadUInt64())); fmt.WriteLine(); return; default: DumpBytes(pt.Size); break; } }