RosettaCodeData/Task/Repeat/68000-Assembly/repeat.68000

20 lines
596 B
Plaintext

lea foo,a5 ;function to execute
move.w #4-1,d7 ;times to repeat
jsr Repeater
jmp * ;halt the CPU, we're done
repeater:
jsr repeaterhelper ;this also need to be a call, so that the RTS of the desired procedure
;returns us to the loop rather than the line after "jsr Repeater".
DBRA D7,repeater
rts
repeaterhelper:
jmp (a5) ;keep in mind, this is NOT a dereference, it simply sets the program counter equal to A5.
;A bit misleading if you ask me.
foo:
MOVE.B #'!',D0
JSR PrintChar
rts