5c7002365405d0a8c467d476108be0475c0a9689
[vvhitespace] / stdlib_tests / 3003_rshift.pvvs
@ Shift by zero.
SSSTN | PUSH +1
SSSSN | PUSH 0
NSTTSTTSSN | JSR > 101100 (rshift)
NSTTSSTN | JSR > 1001 (print number from stack)
@ Shift by one, positive sign extension.
SSSTSN | PUSH +2
SSSTN | PUSH +1
NSTTSTTSSN | JSR > 101100 (rshift)
NSTTSSTN | JSR > 1001 (print number from stack)
@ Shift by four, positive sign extension.
SSSTSSSSN | PUSH +16
SSSTSSN | PUSH +4
NSTTSTTSSN | JSR > 101100 (rshift)
NSTTSSTN | JSR > 1001 (print number from stack)
@ Shift by one, negative sign extension.
@ -9223372036854775805 = 1000000000000000000000000000000000000000000000000000000000000011
@ -4611686018427387903 = 1100000000000000000000000000000000000000000000000000000000000001
SSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTSTN | PUSH -9223372036854775805
SSSTN | PUSH +1
NSTTSTTSSN | JSR > 101100 (rshift)
NSTTSSTN | JSR > 1001 (print number from stack)
@ Shift by four, negative sign extension
@ -9223372036854775638 = 1000000000000000000000000000000000000000000000000000000010101010
@ -576460752303423478 = 1111100000000000000000000000000000000000000000000000000000001010
SSTSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTSTSTSTTSN | PUSH -9223372036854775638
SSSTSSN | PUSH +4
NSTTSTTSSN | JSR > 101100 (rshift)
NSTTSSTN | JSR > 1001 (print number from stack)
@ Test for special case: rshift(-1) = -1
SSTTN | PUSH -1
SSSTN | PUSH +1
NSTTSTTSSN | JSR > 101100 (rshift)
NSTTSSTN | JSR > 1001 (print number from stack)
@ Shift a single 1 in the MSb into all ones
SSTTSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSN | PUSH -(2^63)
SSSTTTTTTN | PUSH +63
NSTTSTTSSN | JSR > 101100 (rshift)
NSTTSSTN | JSR > 1001 (print number from stack)
@ All done.
NNN | DIE
#include <logic.pvvs>
#include <stdio.pvvs>