编译器的工作是确保不会覆盖在中断程序中使用的索引寄存器或从中断程序调用的函数或功能块中使用的索引寄存器。
以下示例显示了PLC的代码生成概念(中断中的索引寄存器:右侧的程序代码、程序员注释)以确保此行为:
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