module HRM::Instruction
Public Instance Methods
add(address)
click to toggle source
# File lib/hrm/instruction.rb, line 36 def add(address) @value += @memory[address] end
bumpdown(address)
click to toggle source
# File lib/hrm/instruction.rb, line 48 def bumpdown(address) @value = @memory[address] -= 1 end
bumpup(address)
click to toggle source
# File lib/hrm/instruction.rb, line 44 def bumpup(address) @value = @memory[address] += 1 end
copyfrom(address)
click to toggle source
# File lib/hrm/instruction.rb, line 28 def copyfrom(address) @value = @memory[address] end
copyto(address)
click to toggle source
# File lib/hrm/instruction.rb, line 32 def copyto(address) @memory[address] = @value end
inbox()
click to toggle source
# File lib/hrm/instruction.rb, line 13 def inbox unless @value = STDIN.gets&.chomp exit(0) end if @value =~ /^[-+]?[0-9]+$/ @value = @value.to_i end end
jump(address)
click to toggle source
# File lib/hrm/instruction.rb, line 52 def jump(address) @pc = address end
jump_if_neg(address)
click to toggle source
# File lib/hrm/instruction.rb, line 62 def jump_if_neg(address) if @value.negative? @pc = address end end
jump_if_zero(address)
click to toggle source
# File lib/hrm/instruction.rb, line 56 def jump_if_zero(address) if @value.zero? @pc = address end end
outbox()
click to toggle source
# File lib/hrm/instruction.rb, line 23 def outbox puts @value @value = nil end
sub(address)
click to toggle source
# File lib/hrm/instruction.rb, line 40 def sub(address) @value -= @memory[address] end