Beispiel #1
0
        public void ParseMemoryOperandWithUnspecifiedWidth()
        {
            OperandParser opp = Create16BitParser("[bx]");
            ParsedOperand po  = opp.ParseOperand();
            MemoryOperand mop = (MemoryOperand)po.Operand;

            Assert.IsNull(po.Operand.Width, "Operand width should have been null, was " + po.Operand.Width);
            Assert.AreSame(Registers.bx, mop.Base);
        }
Beispiel #2
0
        public void ParseMemoryOperandWithSpecifiedWidth()
        {
            OperandParser opp = Create16BitParser("byte ptr [bx]");
            ParsedOperand po  = opp.ParseOperand();
            MemoryOperand mop = (MemoryOperand)po.Operand;

            Assert.AreSame(PrimitiveType.Byte, mop.Width);
            Assert.AreSame(Registers.bx, mop.Base);
        }
Beispiel #3
0
        public void ParseSibMemoryOperand()
        {
            OperandParser opp = Create16BitParser("[eax+eax*4]");
            ParsedOperand po  = opp.ParseOperand();
            MemoryOperand mop = (MemoryOperand)po.Operand;

            Assert.IsNull(mop.Width, "Width should be undefined, but is " + mop.Width);
            Assert.IsNull(mop.Offset, "Offset should be null, but is " + mop.Offset);
            Assert.AreEqual("[eax+eax*4]", mop.ToString(MachineInstructionWriterOptions.None));
        }
Beispiel #4
0
        public void ParseNumericMemoryOperand()
        {
            OperandParser opp = Create16BitParser("[0x21E]");
            ParsedOperand po  = opp.ParseOperand();
            MemoryOperand mop = (MemoryOperand)po.Operand;

            Assert.IsNull(mop.Width, "Width should be undefined, but is " + mop.Width);
            Assert.AreSame(PrimitiveType.Word16, mop.Offset.DataType);
            Assert.AreEqual("[021E]", mop.ToString(MachineInstructionWriterOptions.None));
        }
Beispiel #5
0
        public void ParseMemorySymbol()
        {
            OperandParser opp = Create16BitParser("[foo]");
            ParsedOperand po  = opp.ParseOperand();
            MemoryOperand mop = (MemoryOperand)po.Operand;

            Assert.IsNull(mop.Width, "Width should be undefined, but is " + mop.Width);
            Assert.IsNotNull(po.Symbol, "Should have defined symbol foo");
            Assert.AreEqual("[0000]", mop.ToString(MachineInstructionWriterOptions.None));
        }