class Metasm::ARM::Memref

Attributes

base[RW]
incr[RW]
offset[RW]
sign[RW]

Public Class Methods

new(base, offset, sign=:+, incr=nil) click to toggle source
# File metasm/cpu/arm/main.rb, line 40
def initialize(base, offset, sign=:+, incr=nil)
        @base, @offset, @sign, @incr = base, offset, sign, incr
end

Public Instance Methods

render() click to toggle source
# File metasm/cpu/arm/render.rb, line 32
def render
        o = @offset
        o = Expression[o] if o.kind_of? Integer
        case @incr
        when nil;   ['[', @base, ', ', o, ']']
        when :pre;  ['[', @base, ', ', o, ']!']
        when :post; ['[', @base, '], ', o]
        end
end
symbolic(di=nil) click to toggle source
# File metasm/cpu/arm/main.rb, line 44
def symbolic(di=nil)
        o = @offset
        o = o.symbolic if o.kind_of? Reg
        p = Expression[@base.symbolic, @sign, o].reduce
        Indirection[p, 4, (di.address if di)]
end