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)
|
when 9 => MovF(RegisterF(Integer(Instruction (2))), -- Move Register to Register (Float)
|
||||||
RegisterF(Integer(Instruction (3))));
|
RegisterF(Integer(Instruction (3))));
|
||||||
when 10 => null; -- TODO: Move Memory to Register (Float)
|
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)));
|
BytesToU(TempBytes(Instruction)));
|
||||||
when 12 => AddU(RegisterU(Integer(Instruction (2))), -- Add Register to Register (Unsigned_32)
|
when 12 => AddU(RegisterU(Integer(Instruction (2))), -- Add Register to Register (Unsigned_32)
|
||||||
RegisterU(Integer(Instruction (3))));
|
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)));
|
BytesToI(TempBytes(Instruction)));
|
||||||
when 14 => AddI(RegisterI(Integer(Instruction (2))), -- Add Register to Register (Int)
|
when 14 => AddI(RegisterI(Integer(Instruction (2))), -- Add Register to Register (Int)
|
||||||
RegisterI(Integer(Instruction (3))));
|
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)));
|
BytesToF(TempBytes(Instruction)));
|
||||||
when 16 => AddF(RegisterF(Integer(Instruction (2))), -- Add Register to Register (Float)
|
when 16 => AddF(RegisterF(Integer(Instruction (2))), -- Add Register to Register (Float)
|
||||||
RegisterF(Integer(Instruction (3))));
|
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 65535 => goto THE_END; -- exit opcode
|
||||||
when others => null;
|
when others => null;
|
||||||
end case;
|
end case;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user