Protection des registres d’index dans les programmes d’interruption

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 :

Automates avec bases de registres d’index (FP2SH et 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

Automates sans base de registre d’index

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

Modifié le : 2020-04-17Commentaires sur cette pageAssistance téléphonique