Implemented Subtraction, Multiplication and Division
This commit is contained in:
parent
0afa446b9b
commit
2585629c25
@ -127,18 +127,54 @@ begin
|
||||
when 9 => MovF(RegisterF(Integer(Instruction (2))), -- Move Register to Register (Float)
|
||||
RegisterF(Integer(Instruction (3))));
|
||||
when 10 => null; -- TODO: Move Memory to Register (Float)
|
||||
when 11 => AddU(RegisterU(Integer(Instruction (2))), -- Add Unsigned_32 to Register
|
||||
when 11 => AddU(RegisterU(Integer(Instruction (2))), -- Add Register to Unsigned_32
|
||||
BytesToU(TempBytes(Instruction)));
|
||||
when 12 => AddU(RegisterU(Integer(Instruction (2))), -- Add Register to Register (Unsigned_32)
|
||||
RegisterU(Integer(Instruction (3))));
|
||||
when 13 => AddI(RegisterI(Integer(Instruction (2))), -- Add Int to Register
|
||||
when 13 => AddI(RegisterI(Integer(Instruction (2))), -- Add Register to Integer
|
||||
BytesToI(TempBytes(Instruction)));
|
||||
when 14 => AddI(RegisterI(Integer(Instruction (2))), -- Add Register to Register (Int)
|
||||
RegisterI(Integer(Instruction (3))));
|
||||
when 15 => AddF(RegisterF(Integer(Instruction (2))), -- Add Float to Register
|
||||
when 15 => AddF(RegisterF(Integer(Instruction (2))), -- Add Register to Float
|
||||
BytesToF(TempBytes(Instruction)));
|
||||
when 16 => AddF(RegisterF(Integer(Instruction (2))), -- Add Register to Register (Float)
|
||||
RegisterF(Integer(Instruction (3))));
|
||||
when 17 => SubU(RegisterU(Integer(Instruction(2))), -- Subtract Unsigned_32 from Register
|
||||
BytesToU(TempBytes(Instruction)));
|
||||
when 18 => SubU(RegisterU(Integer(Instruction(2))), -- Subtract Register from Register (Unsigned_32)
|
||||
RegisterU(Integer(Instruction (3))));
|
||||
when 19 => SubI(RegisterI(Integer(Instruction(2))), -- Subtract Integer from Register
|
||||
BytesToI(TempBytes(Instruction)));
|
||||
when 20 => SubI(RegisterI(Integer(Instruction(2))), -- Subtract Register from Register (Int)
|
||||
RegisterI(Integer(Instruction (3))));
|
||||
when 21 => SubF(RegisterF(Integer(Instruction(2))), -- Subtract Float from Register
|
||||
BytesToF(TempBytes(Instruction)));
|
||||
when 22 => SubF(RegisterF(Integer(Instruction(2))), -- Subtract Register from Register (Float)
|
||||
RegisterF(Integer(Instruction (3))));
|
||||
when 23 => MulU(RegisterU(Integer(Instruction(2))), -- Multiply Register by Unsigned_32
|
||||
BytesToU(TempBytes(Instruction)));
|
||||
when 24 => MulU(RegisterU(Integer(Instruction(2))), -- Multiply Register by Register (Unsigned_32)
|
||||
RegisterU(Integer(Instruction (3))));
|
||||
when 25 => MulI(RegisterI(Integer(Instruction(2))), -- Multiply Register by Integer
|
||||
BytesToI(TempBytes(Instruction)));
|
||||
when 26 => MulI(RegisterI(Integer(Instruction(2))), -- Multiply Register by Register (Int)
|
||||
RegisterI(Integer(Instruction (3))));
|
||||
when 27 => MulF(RegisterF(Integer(Instruction(2))), -- Multiply Register by Float
|
||||
BytesToF(TempBytes(Instruction)));
|
||||
when 28 => MulF(RegisterF(Integer(Instruction(2))), -- Multiply Register by Register (Float)
|
||||
RegisterF(Integer(Instruction (3))));
|
||||
when 29 => DivU(RegisterU(Integer(Instruction(2))), -- Divide Register by Unsigned_32
|
||||
BytesToU(TempBytes(Instruction)));
|
||||
when 30 => DivU(RegisterU(Integer(Instruction(2))), -- Divide Register from Register (Unsigned_32)
|
||||
RegisterU(Integer(Instruction (3))));
|
||||
when 31 => DivI(RegisterI(Integer(Instruction(2))), -- Divide Register by Integer
|
||||
BytesToI(TempBytes(Instruction)));
|
||||
when 32 => DivI(RegisterI(Integer(Instruction(2))), -- Divide Register by Register (Int)
|
||||
RegisterI(Integer(Instruction (3))));
|
||||
when 33 => DivF(RegisterF(Integer(Instruction(2))), -- Divide Register by Float
|
||||
BytesToF(TempBytes(Instruction)));
|
||||
when 34 => DivF(RegisterF(Integer(Instruction(2))), -- Divide Register by Register (Float)
|
||||
RegisterF(Integer(Instruction (3))));
|
||||
when 65535 => goto THE_END; -- exit opcode
|
||||
when others => null;
|
||||
end case;
|
||||
|
Loading…
x
Reference in New Issue
Block a user