public void Write(Block block) { address.Value = block.Current; block.Add(Block); uint padlen = Module.Align((uint)Block.Length, 4) - (uint)Block.Length; if (padlen > 0) block.Add(new byte[padlen]); }
public override void Write(Block block) { foreach (FieldInfo fi in GetFields()) { Object obj = fi.GetValue(this); if (obj is Table) { block.Add(((Table)obj).Address); block.Add(((Table)obj).Size); } else if (obj is byte) block.Add((byte)obj); else if (obj is ushort) block.Add((ushort)obj); else if (obj is uint) block.Add((uint)obj); else if (obj is long) block.Add((long)obj); else if (obj is char[]) block.Add((char[])obj); else if (obj is string) block.Add((string)obj); else if (obj is Val32) block.Add((Val32)obj); else throw new Exception("The method or operation is not implemented."); } }
public override void Write(Block block) { block.Add(data); }
public void Write(Block block) { if (op1 is Val32 && relative) { block.Add(GetCodes()); } else if (data != null) { block.Add(data); if (op2 is Addr32) (op2 as Addr32).Write(block); if (op1 != null) { if (op1 is byte) block.Add((byte)op1); else if (op1 is ushort) block.Add((ushort)op1); else if (op1 is Val32) block.Add((Val32)op1); else if (op1 is Val32) block.Add((Val32)op1); else throw new Exception("The method or operation is not implemented."); } if (op2 is byte) block.Add((byte)op2); } }
public override void Write(Block block) { foreach (var ctg in data.Values) foreach (var db in ctg.Values) db.Write(block); if (IsEmtpy) block.Add(new byte[16]); }
public void Write(Block block) { if (address != null) { block.Add((byte)(0x05 + (middleBits << 3))); block.Add(address); } else { block.Add(GetCodes()); } }
public void Write(Block block) { hintAddress.Value = block.Current; block.Add(Hint); block.Add(HeaderBase.Pad(NameSize, Name)); }
public void Write(Block block, bool lookup) { if (!lookup) importRef.Value = block.Current; block.Add(hintAddress); }
public void WriteName(Block block) { table.Name = block.Current; block.Add(HeaderBase.Pad(NameSize, name)); }
public void WriteImportLookupTable(Block block) { table.ImportLookupTable = block.Current; foreach (Symbol sym in symbols.Values) sym.Write(block, true); block.Add(0); }
public void WriteImportAddressTable(Block block) { table.ImportAddressTable = block.Current; foreach (Symbol sym in symbols.Values) sym.Write(block, false); block.Add(0); }