class Escalator::Asm

Constants

BIG_ENDIAN
LITTLE_ENDIAN

Attributes

codes[R]
endian[R]

Public Class Methods

new(source, endian = nil) click to toggle source
# File lib/escalator/asm.rb, line 34
def initialize source, endian = nil
  @endian = endian || BIG_ENDIAN
  @lines = []
  address = 0
  source.each_line do |line|
    @lines << AsmLine.new(line, address, @endian)
    address = @lines.last.next_address
  end
end

Public Instance Methods

dump() click to toggle source
# File lib/escalator/asm.rb, line 44
def dump
  @codes.map do |c|
    c.to_s(16).rjust(2, "0")
  end
end
dump_line() click to toggle source
# File lib/escalator/asm.rb, line 50
def dump_line
  @lines.map do |line|
    "#{line.address.to_s(16).rjust(4, "0")} #{line.dump_line}"
  end
  .join("\n") << "\n"
end

Private Instance Methods

parse(line) click to toggle source
# File lib/escalator/asm.rb, line 65
def parse line
  @lines << AsmLine.new(line)
end