sts.s 393 B

12345678910111213141516171819202122232425262728293031323334
  1. .define .sts
  2. .sect .text
  3. .sect .rom
  4. .sect .data
  5. .sect .bss
  6. ! d0 : # bytes
  7. ! a0 : destination address
  8. .sect .text
  9. .sts:
  10. move.l (sp)+,a1
  11. move.l (sp)+,d0
  12. move.l (sp)+,a0
  13. cmp #1,d0
  14. bne 1f
  15. move.l (sp)+,d0
  16. move.b d0,(a0)
  17. bra 4f
  18. 1: cmp #2,d0
  19. bne 2f
  20. move.l (sp)+,d0
  21. add.l #2,a0
  22. move.w d0,(a0)
  23. bra 4f
  24. 2:
  25. asr #2,d0
  26. sub.l #1,d0
  27. 3:
  28. move.l (sp)+,(a0)+
  29. dbf d0,3b
  30. 4:
  31. jmp (a1)
  32. .align 2