Class: LadderDrive::AsmLine

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(line, address = 0, endian = nil) ⇒ AsmLine

Returns a new instance of AsmLine.



85
86
87
88
89
90
91
# File 'lib/ladder_drive/asm.rb', line 85

def initialize line, address = 0, endian = nil
  @endian = endian || Asm::LITTLE_ENDIAN
  @line = line.upcase.chomp
  @codes = []
  @address = address
  parse
end

Instance Attribute Details

#addressObject (readonly)

Returns the value of attribute address.



82
83
84
# File 'lib/ladder_drive/asm.rb', line 82

def address
  @address
end

#codesObject (readonly)

Returns the value of attribute codes.



81
82
83
# File 'lib/ladder_drive/asm.rb', line 81

def codes
  @codes
end

#endianObject (readonly)

Returns the value of attribute endian.



83
84
85
# File 'lib/ladder_drive/asm.rb', line 83

def endian
  @endian
end

#lineObject (readonly)

Returns the value of attribute line.



80
81
82
# File 'lib/ladder_drive/asm.rb', line 80

def line
  @line
end

Instance Method Details

#dumpObject



97
98
99
100
101
102
103
# File 'lib/ladder_drive/asm.rb', line 97

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

#dump_lineObject



93
94
95
# File 'lib/ladder_drive/asm.rb', line 93

def dump_line
  "#{dump}\t#{line}"
end

#next_addressObject



105
106
107
# File 'lib/ladder_drive/asm.rb', line 105

def next_address
  address + codes.size
end