Das eBook Angewandte Mikroelektronik wurde von Hans Lohninger zur Unterstützung verschiedener Lehrveranstaltungen geschrieben. Weitere Informationen finden sie hier. |
![]() |
Home ![]() ![]() ![]() ![]() |
||
Siehe auch: Programm-Dokumentation | ||
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
||
Seiteneffekte
Solche Seiteneffekte beruhen oft auf veränderten Flags oder Registern, die dann im Hauptprogramm unterschiedliche Verhaltensweisen auslösen können. Auch ist die Veränderung von globalen Variablen oft die Ursache von Seiteneffekten. Einzige Abhilfe gegen solche unerwartete Effekte ist entweder, das jeweilige Unterprogramm rigoros zu dokumentieren, was sehr zeitaufwendig sein kann, oder sich zur Gewohnheit zu machen, Registerinhalte nur dann zu verändern, wenn dies aus der Funktion eines Unterprogramms erwartet wird. Benötigt man Register oder Variable nur innerhalb eines Unterprogramms, so sollte man diese zu Beginn eines Unterprogramms am Stack sichern und am Ende des Unterprogramms wieder vom Stack restaurieren. Das folgende Programmbeispiel zeigt eine verbesserte Version des kleinen, oben gezeigten Delay-Programms, das nun keine Register mehr ändert. Dazu werden alle im Unterprogramm benötigten Register auf dem Stack gesichert (PUSH) und am Ende wieder hergestellt (POP). DELAY: PUSH HL ;HL sichern PUSH AF ;AF sichern DEL1: DEC HL ;Parameter dekrementieren LD A,L ;Überprüfung ob gleich 0 OR H JR NZ,DEL1 ;Wiederholung bis HL=0 POP AF ;AF wiederherstellen POP HL ;HL wiederherstellen RET
|
||
Home ![]() ![]() ![]() ![]() |