Le compilateur doit s’assurer que les registres d’index utilisés dans les programmes d’interruption, les fonctions et les blocs fonctions ne sont pas écrasés.
L’exemple ci-dessous illustre le concept de la génération de codes pour automates (registre d’index dans un programme d’interruption : code programme, commentaires du programmeur à droite) permettant de garantir ce comportement :
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 reset
INT0
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