class N65::Space
This directive gives a symbolic name for memory and creates space for a variable in RAM
Public Class Methods
new(name, size)
click to toggle source
Initialize some memory space with a name
# File lib/n65/directives/space.rb, line 23 def initialize(name, size) @name = name @size = size end
parse(line)
click to toggle source
Try to parse a .space directive
# File lib/n65/directives/space.rb, line 12 def self.parse(line) match_data = line.match(/^.space\s+([a-zA-Z]?[a-zA-Z0-9_]+?)\s+([0-9]+)$/) return nil if match_data.nil? _, name, size = match_data.to_a Space.new(name, size.to_i) end
Public Instance Methods
exec(assembler)
click to toggle source
.space creates a symbol at the current PC, and then advances PC by size
# File lib/n65/directives/space.rb, line 31 def exec(assembler) program_counter = assembler.program_counter assembler.symbol_table.define_symbol(@name, program_counter) assembler.program_counter += @size end
to_s()
click to toggle source
Display
# File lib/n65/directives/space.rb, line 40 def to_s ".space #{@name} #{@size}" end