Example #1
0
 /// <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);
 }
Example #2
0
        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);
        }
Example #3
0
 /// <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);
 }
Example #4
0
        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);
        }