aboutsummaryrefslogtreecommitdiff
path: root/amforth-6.5/avr8/words/rshift.asm
diff options
context:
space:
mode:
Diffstat (limited to 'amforth-6.5/avr8/words/rshift.asm')
-rw-r--r--amforth-6.5/avr8/words/rshift.asm22
1 files changed, 22 insertions, 0 deletions
diff --git a/amforth-6.5/avr8/words/rshift.asm b/amforth-6.5/avr8/words/rshift.asm
new file mode 100644
index 0000000..e0e2231
--- /dev/null
+++ b/amforth-6.5/avr8/words/rshift.asm
@@ -0,0 +1,22 @@
+; ( n1 n2 -- n3 )
+; Arithmetics
+; shift n1 n2-times logically right
+VE_RSHIFT:
+ .dw $ff06
+ .db "rshift"
+ .dw VE_HEAD
+ .set VE_HEAD = VE_RSHIFT
+XT_RSHIFT:
+ .dw PFA_RSHIFT
+PFA_RSHIFT:
+ movw zl, tosl
+ loadtos
+PFA_RSHIFT1:
+ sbiw zl, 1
+ brmi PFA_RSHIFT2
+ lsr tosh
+ ror tosl
+ rjmp PFA_RSHIFT1
+PFA_RSHIFT2:
+ jmp_ DO_NEXT
+