Minimal notwendige Befehle

4 (?) Cycles, bis der Interrupt angesprungen wird.
2 Cyc. PUSH Arbeitsregistert
1 Cyc IN Status->Register
2 Cyc PUSH Register
1 Cycle, LDS um in das Register einen Wert zu laden
1 Cycle, OUT um in diesen Wert als Output zu setzen
2 POP Register
1 OUT Status restore
2 POP Register
4 RETI

~20 Cycles

ev.+1/2 , weil ja der laufende Befehl noch ausgeführt wird

sind wir bei 21 - 22, also reserve null.

Das alles reicht aber nicht, denn um ein Output-Rechteck zu erzeugen, musst du ja den Outout auch wieder auf null zurücksetzen.

Wenn der µC sonst nix zu tun hat ausser das In-Signal verzögert auszugeben, würde ich das ohne INT machen.

Pseudo-code, z.B:
Code:
 
loop:
1 Cyc     IN    Inpt-Pin
n Cyc    NOP           Verzögerung, jeder NOP ist 60 nS wert. 
1 Cyc     OUT Outpin  
2 Cyc     RJMP  Loop
Da sind 4 Cyclen MUSS-Code, die restlichen 19 Cyclen hättest du zu freien Verfügung
Irgendwelche Interrupts (timer etc.) wäre da aber unerwünscht, denn dann fehlen bestimmt ein paar Signale

Noch'n Problem: Je nachdem, WANN während der Schleife der Input-Flankenwechsel auftritt, kann deine Reaktionszeit schwanken.

---> Für mich quietscht das nach einer HW-Lösung