Sichern der Indexregister in Interrupt-Programmen

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):

Steuerungen mit Index-Registerbänken (FP2SH und FP10SH)

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

Steuerungen ohne Index-Registerbänke

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

Letzte Änderung am: 2020-02-17Feedback zu dieser SeitePanasonic Hotline