Hallo,
in nahezu allen Assembler-Tutorials wird explizit darauf hingewiesen, daß der Stackpointer eingerichtet werden muß (auf Ramend setzen). zT wird auch empfohlen, alle verwendeten "Hardware"-Register (I/O-Register oder auch SpezialFunction-Register) zu initialisieren.
Meine Frage bezieht sich jetzt speziell auf den (hier auch im ATM18-Projekt verwendeten) ATmega88. Warum?
-Laut Datenblatt des Mega88 (S.44 10.1) werden nach einem Reset alle I/O-Register mit ihrem jeweiligen initial value geladen, bevor der Sprung zum Resetvektor erfolgt.
-der Stackpointer liegt mit 0x3E und 0x3D im I/O-Memory, und hat als initial value den Wert Ramend (S.13 6.6.1)
Somit sollte der doch nach jedem Reset bereits gesetzt sein, die ganzen I/O-Register ebenso.
Hat jemand 'ne Erklärung?
Danke
