12345678910111213141516171819202122232425262728293031323334353637 |
- .define .los
- .sect .text
- .sect .rom
- .sect .data
- .sect .bss
- ! d0 : # bytes
- ! a0 : source address
- .sect .text
- .los:
- move.l (sp)+,a1
- move.l (sp)+,d0
- move.l (sp)+,a0
- cmp.l #1,d0
- bne 1f
- clr.l d0 !1 byte
- move.b (a0),d0
- move.l d0,-(sp)
- bra 3f
- 1:
- cmp.l #2,d0
- bne 2f
- clr.l d0 !2 bytes
- add.l #2,a0
- move.w (a0),d0
- move.l d0,-(sp)
- bra 3f
- 2:
- add.l d0,a0 !>=4 bytes
- asr.l #2,d0
- 4: move.l -(a0),-(sp)
- sub.l #1,d0
- bgt 4b
- 3:
- jmp (a1)
- .align 2
|