Class: Escalator::Asm

Inherits:
Object
  • Object
show all
Defined in:
lib/escalator/asm.rb

Constant Summary collapse

LITTLE_ENDIAN =
0
BIG_ENDIAN =
1

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(source, endian = nil) ⇒ Asm

Returns a new instance of Asm.



34
35
36
37
38
39
40
41
42
# 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

Instance Attribute Details

#codesObject (readonly)

Returns the value of attribute codes.



28
29
30
# File 'lib/escalator/asm.rb', line 28

def codes
  @codes
end

#endianObject (readonly)

Returns the value of attribute endian.



29
30
31
# File 'lib/escalator/asm.rb', line 29

def endian
  @endian
end

Instance Method Details

#dumpObject



44
45
46
47
48
# File 'lib/escalator/asm.rb', line 44

def dump
  @codes.map do |c|
    c.to_s(16).rjust(2, "0")
  end
end

#dump_lineObject



50
51
52
53
54
55
# 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