summaryrefslogtreecommitdiff
path: root/cpu/instructions/execution_control/call_conditional.txt
diff options
context:
space:
mode:
Diffstat (limited to 'cpu/instructions/execution_control/call_conditional.txt')
-rw-r--r--cpu/instructions/execution_control/call_conditional.txt22
1 files changed, 22 insertions, 0 deletions
diff --git a/cpu/instructions/execution_control/call_conditional.txt b/cpu/instructions/execution_control/call_conditional.txt
new file mode 100644
index 0000000..7663e54
--- /dev/null
+++ b/cpu/instructions/execution_control/call_conditional.txt
@@ -0,0 +1,22 @@
+Number of parameters: 2
+
+Usage: call_conditional <type_and_index> <target>
+ type_and_index:
+ Lowest 3 bits: flags for each of the following checked, from lowest to highest:
+ Zero
+ Overflow
+ Carry
+ Next 3 bits:
+ Value for each of the above that it should match
+ Remaining bits:
+ Index into instruction queue for which result is to be compared
+
+Effect:
+ If all of the checked flags match the value to compare to:
+ IP pushed to stack
+ IP moved to <target>
+
+ If no flags are to be checked, it will always set IP
+
+Exceptions:
+ Instruction reference nonexistent