12345678910111213141516171819202122232425262728293031 |
- .define Rol
- .sect .text
- .sect .rom
- .sect .data
- .sect .bss
- .sect .text
- ! This subroutine rotates left an integer n times
- ! N is in register X.
- ! The result is returned in registerpair AX.
- Rol:
-
- txa
- bne 1f
- jmp Pop ! zero rotate return input
- 1: tay ! Y contains number of rotates
- jsr Pop
- stx Ytmp ! save lowbyte
- 2: clc
- rol Ytmp ! rotate lowbyte
- rol a ! rotate highbyte
- bcc 1f ! no carry
- inc Ytmp ! put carry in rightmost bit
- 1: dey
- bne 2b
- ldx Ytmp ! store lowbyte in X
- rts
|