/// <summary> /// Signed 16-bit immediate following the instruction. /// </summary> private static bool Imm16(uint _, V850Disassembler dasm) { if (!dasm.rdr.TryReadLeInt16(out short simm)) { return(false); } dasm.ops.Add(ImmediateOperand.Word32(simm)); return(true); }
private static bool disp22(uint uInstr, V850Disassembler dasm) { var dispLo = (ushort)dasm.displacement; var dispHi = (uint)bits0_5.ReadSigned(uInstr); dispHi = (dispHi << 16) | dispLo; dasm.ops.Add(AddressOperand.Create(dasm.addr + (int)dispHi)); return(true); }
/// <summary> /// 32-bit immediate following the instruction. /// </summary> private static bool Imm32(uint uInstr, V850Disassembler dasm) { if (!dasm.rdr.TryReadLeUInt32(out uint imm)) { return(false); } dasm.ops.Add(ImmediateOperand.Word32(imm)); return(true); }
private static bool disp32(uint uInstr, V850Disassembler dasm) { if (!dasm.rdr.TryReadUInt16(out ushort dispLo)) { return(false); } if (!dasm.rdr.TryReadUInt16(out ushort dispHi)) { return(false); } var disp = (uint)(dispHi << 16) | dispLo; dasm.ops.Add(AddressOperand.Create(dasm.addr + (int)disp)); return(true); }