From e41c92320aef4a54b7f3b323f7302b180019b6d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnther=20Neuwirth?= Date: Tue, 12 May 2009 19:53:07 +0200 Subject: some changes --- ue3/mycpu/cinstruction.cpp | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'ue3/mycpu/cinstruction.cpp') diff --git a/ue3/mycpu/cinstruction.cpp b/ue3/mycpu/cinstruction.cpp index 2c8dedf..3cbb033 100644 --- a/ue3/mycpu/cinstruction.cpp +++ b/ue3/mycpu/cinstruction.cpp @@ -1,4 +1,5 @@ #include +#include #include #include #include "cinstruction.h" @@ -28,6 +29,7 @@ void CSub::exec(CMem& mem, vector& instr) { mem.getRegister(instr[1]) = mem.getRegister(instr[2]) - mem.getRegister(instr[3]); + } @@ -47,7 +49,9 @@ void CDiv::exec(CMem& mem, vector& instr) void CLoad::exec(CMem& mem, vector& instr) { - mem.getRegister(instr[1]) = mem.getMem(instr[2]); + istringstream stmp ("22"); + stmp >> mem.getRegister(instr[1]); + cout <& instr) } -void CTest::test(CMem& mem, vector& instr, bool& f_zero, bool& f_sign) +void CTest::exec(CMem& mem, vector& instr) { if(mem.getRegister(instr[1]) == 0) f_zero = true; else f_zero = false; - if(mem.getRegister(instr[1]) <= 0) + if(mem.getRegister(instr[1]) < 0) f_sign = true; else f_sign = false; + } @@ -76,26 +81,27 @@ void CTest::test(CMem& mem, vector& instr, bool& f_zero, bool& f_sign) void CJumpa::exec(CMem& mem, vector& instr) { - mem.getRegister(instr[0]) = (int) m_jumpaddr[instr[1]]; + mem.getRegister("R0") = (int) m_jumpaddr[instr[1]]; } -void CJumpz::exec(CMem& mem, vector& instr, bool& f_zero) +void CJumpz::exec(CMem& mem, vector& instr) { if(f_zero) - mem.getRegister(instr[0]) = (int) m_jumpaddr[instr[1]]; + mem.getRegister("R0") = (int) m_jumpaddr[instr[1]]; } -void CJumps::exec(CMem& mem, vector& instr, bool& f_sign) +void CJumps::exec(CMem& mem, vector& instr) { if(f_sign) - mem.getRegister(instr[0]) = (int) m_jumpaddr[instr[1]]; + mem.getRegister("R0") = (int) m_jumpaddr[instr[1]]; } void CWrite::exec(CMem& mem, vector& instr) { + if(instr[1] == "WDEZ") cout << mem.getRegister(instr[2]) << endl; else if (instr[1] == "WHEX") -- cgit v1.2.3