Das eBook Angewandte Mikroelektronik wurde von Hans Lohninger zur Unterstützung verschiedener Lehrveranstaltungen geschrieben. Weitere Informationen finden sie hier.


Reentrante Unterprogramme

Reentrante Programme sind Programme, die ein zweites Mal aufgerufen werden können, bevor sie noch fertig bearbeitet sind. Reentrante (wiedereintrittsfähige) Programme sind vor allem bei der Bearbeitung von Interrupts unbedingt notwendig.

Angenommen, der Mikroprozessor bearbeitet momentan im normalen Programmablauf gerade eine Routine zur Division von zwei Zahlen. Währenddessen wird durch eine Interruptanforderung die Arbeit an der Divisionsroutine unterbrochen und die Interruptroutine abgearbeitet. Nach der Beendigung der Interrupt-Service-Routine wird dann die Divisionsroutine fortgesetzt, wo sie unterbrochen worden ist. Was geschieht aber, wenn die Interruptroutine unter anderem auch eben diese Divisionsroutine verwendet? Kann die unterbrochene Divisionsroutine wieder ordnungsgemäß fortgesetzt werden? - Ja, falls das Programm zur Division reentrant geschrieben ist.

Falls das Divisionsprogramm seine Zwischenergebnisse auf fixen Speicheradressen ablegt, würde ein zweiter Aufruf des Divisionsprogramms die alten Werte überschreiben und damit das Ergebnis des ersten zunichte machen. Reentrante Programme dürfen also ihre Zwischenergebnisse nicht in fixen Speicherpositionen ablegen, sondern müssen variable Speicheradressen verwenden, z.B. einen Stack oder eine andere Form von indizierten Speicherbereichen.


Last Update: 2010-12-05