class Metasm::Ia32::Farptr

a far pointer an immediate (numeric) pointer and an immediate segment selector

Attributes

addr[RW]
seg[RW]

Public Class Methods

decode(edata, endianness, adsz) click to toggle source
# File metasm/cpu/ia32/decode.rb, line 74
def self.decode(edata, endianness, adsz)
        addr = Expression[edata.decode_imm("u#{adsz}".to_sym, endianness)]
        seg = Expression[edata.decode_imm(:u16, endianness)]
        new seg, addr
end
new(seg, addr) click to toggle source
# File metasm/cpu/ia32/main.rb, line 146
def initialize(seg, addr)
        @seg, @addr = seg, addr
end

Public Instance Methods

==(o) click to toggle source
# File metasm/cpu/ia32/main.rb, line 150
def ==(o)
        self.class == o.class and seg == o.seg and addr == o.addr
end
encode(endianness, atype) click to toggle source
# File metasm/cpu/ia32/encode.rb, line 173
def encode(endianness, atype)
        @addr.encode(atype, endianness) << @seg.encode(:u16, endianness)
end
render() click to toggle source
# File metasm/cpu/ia32/render.rb, line 26
def render
        [@seg, ':', @addr]
end
symbolic(di=nil) click to toggle source
# File metasm/cpu/ia32/main.rb, line 154
def symbolic(di=nil)
        # XXX realmode only
        Expression[[@seg, :<<, 4], :|, @addr]
end