Author: jquelin
Date: Fri Jan 9 01:51:26 2009
New Revision: 35260
Modified:
trunk/languages/befunge/befunge.pir
trunk/languages/befunge/maths.pir
Log:
instruction - implemented (substraction)
Modified: trunk/languages/befunge/befunge.pir
==============================================================================
--- trunk/languages/befunge/befunge.pir (original)
+++ trunk/languages/befunge/befunge.pir Fri Jan 9 01:51:26 2009
@@ -93,6 +93,7 @@
if char == '|' goto FLOW_IF_VERTICAL
# math functions
+ if char == '-' goto MATHS_SUB
if char == '!' goto MATHS_NOT
# stack operations
@@ -121,7 +122,7 @@
# Math functions.
eq S0, "+", MATHS_ADD
- eq S0, "-", MATHS_SUB
+ #eq S0, "-", MATHS_SUB
eq S0, "*", MATHS_MUL
eq S0, "/", MATHS_DIV
eq S0, "%", MATHS_MOD
@@ -183,10 +184,12 @@
MATHS_NOT:
maths__not()
goto MOVE_PC
-
MATHS_PUSH_NUMBER:
maths__push_number()
goto MOVE_PC
+ MATHS_SUB:
+ maths__sub()
+ goto MOVE_PC
# stack operations
STACK_DUP:
Modified: trunk/languages/befunge/maths.pir
==============================================================================
--- trunk/languages/befunge/maths.pir (original)
+++ trunk/languages/befunge/maths.pir Fri Jan 9 01:51:26 2009
@@ -29,6 +29,22 @@
.end
+#
+# maths__sub()
+#
+# substraction.
+# befunge stack:
+# before: ... a b
+# after: ... a-b
+#
+.sub "maths__sub"
+ $I1 = stack__pop()
+ $I0 = stack__pop()
+ $I2 = $I0 - $I1
+ stack__push($I2)
+.end
+
+
=pod
# Create a pseudo-random number.
@@ -68,23 +84,6 @@
push P2, I12
branch MOVE_PC
-# Substraction.
-# Befunge Stack:
-# before: ... a b
-# after: ... a-b
-MATHS_SUB:
- set I11, P2
- unless I11, MATHS_SUB_POP_1
- pop I11, P2
-MATHS_SUB_POP_1:
- set I10, P2
- unless I10, MATHS_SUB_POP_2
- pop I10, P2
-MATHS_SUB_POP_2:
- sub I12, I10, I11
- push P2, I12
- branch MOVE_PC
-
# Multiplication.
# Befunge Stack:
# before: ... a b