change operators to symbols

This commit is contained in:
Torsten Ruger
2018-03-24 17:53:27 +02:00
parent 3ceb2c2f69
commit 793fa313a5
3 changed files with 37 additions and 29 deletions

View File

@ -109,7 +109,7 @@ module Risc
def execute_IsZero
@flags[:zero] ? execute_Branch : true
end
def execute_IsNotzero
def execute_IsNotZero
@flags[:zero] ? true : execute_Branch
end
def execute_IsPlus
@ -255,23 +255,23 @@ module Risc
end
def handle_operator(left, right)
case @instruction.operator.to_s
when "+"
left = left.object_id unless left.is_a?(Integer)
right = right.object_id unless right.is_a?(Integer)
case @instruction.operator
when :+
return left + right
when "-"
when :-
return left - right
when ">>"
when :>>
return left / (2**right)
when "<<"
when :<<
return left * (2**right)
when "*"
when :*
return left * right
when "&"
when :&
return left & right
when "|"
when :|
return left | right
when "=="
return (left == right) ? 1 : 0
else
raise "unimplemented '#{@instruction.operator}' #{@instruction}"
end