Der Compiler muss dafür sorgen, dass Indexregister, die in Interrupt-Programmen bzw. in Funktionen oder Funktionsbausteinen, die von Interrupt-Programmen aufgerufen werden, verwendet werden, nicht überschrieben werden.
Hierzu wird für SPSen folgender Code generiert (Indexregister im Interrupt: Programmcode, Erläuterung des Programmierers rechts):
INT0
ST R9010
F411_CHGB K1 Index register bank set to 1
ST R9010
F0_MV DT458, I5 Actual program code
F0_MV K5, I5DT455
ST R9010
F412_POPB Index register bank resetINT0
ST R9010
F0_MV I5, DT461 Protecting the current content
ST R9010
F0_MV DT458, I5 Actual program code
F0_MV K5, I5DT455
ST R9010F0_MV DT461, I5 Rewriting the current content
IRET