Added tests for `xor` subroutine from stdlib.
[vvhitespace] / stdlib_tests / 3006_xor.pvvs
CommitLineData
08402297
AT
1@ Test 0 xor 0 = 0
2SSSSN | PUSH 0
3SSSSN | PUSH 0
4NSTTSTSTTN | JSR > 101110 (xor)
5NSTTSSTN | JSR > 1001 (print number from stack)
6
7@ Test 0 xor 1 = 1
8SSSSN | PUSH 0
9SSSTN | PUSH +1
10NSTTSTSTTN | JSR > 101110 (xor)
11NSTTSSTN | JSR > 1001 (print number from stack)
12
13@ Test 1 xor 1 = 0
14SSSTN | PUSH +1
15SSSTN | PUSH +1
16NSTTSTSTTN | JSR > 101110 (xor)
17NSTTSSTN | JSR > 1001 (print number from stack)
18
19@ Test 1 xor 1...1 = 1...10
20SSSTN | PUSH +1
21SSTTN | PUSH -1
22NSTTSTSTTN | JSR > 101110 (xor)
23NSTTSSTN | JSR > 1001 (print number from stack)
24
25@ Test 1010...1010 xor 0101...0101 = 1...1
26@ Note that -6148914691236517206 = 1010...1010 in twos-complement but we
27@ enter it in sign magnitude format so the bit pattern appears different.
28SSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTTSN | PUSH -6148914691236517206
29SSSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTN | PUSH +6148914691236517205
30NSTTSTSTTN | JSR > 101110 (xor)
31NSTTSSTN | JSR > 1001 (print number from stack)
32
33@ All done.
34NNN | DIE
35
36#include <logic.pvvs>
37#include <stdio.pvvs>