Repeat: Difference between revisions
Content added Content deleted
Puppydrum64 (talk | contribs) |
Puppydrum64 (talk | contribs) |
||
Line 2,221: | Line 2,221: | ||
<lang z80>trampoline: |
<lang z80>trampoline: |
||
jp (hl) ;despite the parentheses this does NOT dereference HL, it merely acts as "LD PC,HL".</lang> |
jp (hl) ;despite the parentheses this does NOT dereference HL, it merely acts as "LD PC,HL".</lang> |
||
===Using self-modifying code=== |
|||
This method assumes the routine doesn't use the B register, or restores it before returning. Also, the actual "wrapper" used to repeat the passed function must be in RAM so that its instructions can be modified at runtime. |
|||
LD HL,myFunc |
|||
LD (repeatproc+1),HL |
|||
LD B,5 ;repeat count |
|||
CALL repeatProc |
|||
;somewhere far away from here: |
|||
repeatProc: |
|||
call &0000 ;gets overwritten with the address of MyFunc |
|||
djnz repeatProc |
|||
ret</lang> |
|||
=={{header|zkl}}== |
=={{header|zkl}}== |