12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- .define .ror4
- .sect .text
- .sect .rom
- .sect .data
- .sect .bss
- .sect .text
- ! Rotate 4 bytes right
- ! Expects in de-reg: number of rotates
- ! Expects on stack: operand
- ! Yields on stack: result
- .ror4: pop h
- shld .retadr
- mov h,b
- mov l,c
- shld .bcreg
- pop h ! low-order bytes of operand
- pop b ! high order bytes of operand
- mov a,e
- ani 31
- jz 2f
- mov e,a
- mov a,l
- rar
- 1: mov a,b
- rar
- mov b,a
- mov a,c
- rar
- mov c,a
- mov a,h
- rar
- mov h,a
- mov a,l
- rar
- mov l,a
- dcr e
- jnz 1b ! keep looping
- 2: push b
- push h
- lhld .bcreg
- mov b,h
- mov c,l
- lhld .retadr
- pchl
|