Hallo, ich will mit dem Atmega 16 eine große Tabelle ca 200 Werte abfragen. Und zwar so dass ich die Adresse immer im eins incrementiere und dann an die Stelle Springe. Nun habe ich die Befürchtung, dass wenn das Low-Byte der Startadresse schon einen recht hohen Wert über 55 hat, dass ich dann auch noch das Hgh byte abfragen muss. Deshalb wollte ich dass die Tabelle so setzen dass das Low-Byte der Startaddy 0x00 ist. Wie kann ich dem Assembler sagen, das er die Tabelle an erst einer solchen Stelle einsetzen soll?
1.: Wo willst Du die Tabelle hinlegen (RAM, Flash, EEPROM)? 2.: Ich verstehe nicht ganz, warum das Low-Byte der Adresse ein Problem ist. 3.: Eine Startadresse für ein Segment setzt man mit .org. Davor muss je nach Speicherbereich ein .dseg, .cseg oder .eseg.
> Nun habe ich die Befürchtung, dass wenn das Low-Byte der > Startadresse schon einen recht hohen Wert über 55 hat, > dass ich dann auch noch das Hgh byte abfragen muss. > Deshalb wollte ich dass die Tabelle so setzen dass > das Low-Byte der Startaddy 0x00 ist. Das brauchst du nicht. Solange deine Tabelle kleiner als 256 Bytes ist, kannst du den Endindex immer eindeutig erkennen, selbst wenn da ein Overflow vom low Byte zum high Byte erfolgt. Du hast dann zwar den seltsam anmutenden Fall, dass die 'Endadresse' kleiner als die 'Startadresse' ist (bei nur einem Byte), es hat aber alles seine Richtigkeit.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.