Author: jquelin
Date: Fri Jan 9 02:28:54 2009
New Revision: 35268
Modified:
trunk/languages/befunge/befunge.pir
trunk/languages/befunge/maths.pir
Log:
instruction + implemented (addition)
Modified: trunk/languages/befunge/befunge.pir
==============================================================================
--- trunk/languages/befunge/befunge.pir (original)
+++ trunk/languages/befunge/befunge.pir Fri Jan 9 02:28:54 2009
@@ -95,6 +95,7 @@
if char == '#' goto FLOW_BRIDGE
# math functions
+ if char == '+' goto MATHS_ADD
if char == '-' goto MATHS_SUB
if char == '!' goto MATHS_NOT
@@ -125,7 +126,7 @@
eq S0, "@", FLOW_END
# Math functions.
- eq S0, "+", MATHS_ADD
+ #eq S0, "+", MATHS_ADD
#eq S0, "-", MATHS_SUB
eq S0, "*", MATHS_MUL
eq S0, "/", MATHS_DIV
@@ -194,6 +195,9 @@
goto MOVE_PC
# maths instructions
+ MATHS_ADD:
+ maths__add()
+ goto MOVE_PC
MATHS_NOT:
maths__not()
goto MOVE_PC
Modified: trunk/languages/befunge/maths.pir
==============================================================================
--- trunk/languages/befunge/maths.pir (original)
+++ trunk/languages/befunge/maths.pir Fri Jan 9 02:28:54 2009
@@ -29,6 +29,24 @@
.end
+# ** math operations
+
+#
+# maths__add()
+#
+# addition.
+# befunge stack:
+# before: ... a b
+# after: ... a+b
+#
+.sub "maths__add"
+ $I1 = stack__pop()
+ $I0 = stack__pop()
+ $I2 = $I0 + $I1
+ stack__push($I2)
+.end
+
+
#
# maths__sub()
#
@@ -66,24 +84,6 @@
save I10
ret
-
-# Addition.
-# Befunge Stack:
-# before: ... a b
-# after: ... a+b
-MATHS_ADD:
- set I11, P2
- unless I11, MATHS_ADD_POP_1
- pop I11, P2
-MATHS_ADD_POP_1:
- set I10, P2
- unless I10, MATHS_ADD_POP_2
- pop I10, P2
-MATHS_ADD_POP_2:
- add I12, I10, I11
- push P2, I12
- branch MOVE_PC
-
# Multiplication.
# Befunge Stack:
# before: ... a b