class Metasm::CY16::Memref

Attributes

autoincr[RW]
base[RW]
offset[RW]
sz[RW]

Public Class Methods

new(base, offset, sz=nil, autoincr=nil) click to toggle source
# File metasm/cpu/cy16/main.rb, line 34
def initialize(base, offset, sz=nil, autoincr=nil)
        @base = base
        offset = Expression[offset] if offset
        @offset = offset
        @sz = sz
        @autoincr = autoincr
end

Public Instance Methods

render() click to toggle source
# File metasm/cpu/cy16/render.rb, line 18
def render
        r = []
        r << (@sz == 1 ? 'byte ptr ' : 'word ptr ')
        r << '['
        r << @base if @base
        r << '++' if @autoincr
        r << ' + ' if @base and @offset
        r << @offset if @offset
        r << ']'
end
symbolic(orig) click to toggle source
# File metasm/cpu/cy16/main.rb, line 42
def symbolic(orig)
        p = nil
        p = Expression[p, :+, @base.symbolic] if base
        p = Expression[p, :+, @offset] if offset
        Indirection[p.reduce, @sz, orig]
end