Forum: Mikrocontroller und Digitale Elektronik Große Tabelle an bestimmte Stelle


von Markus K. (Gast)


Lesenswert?

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?

von johnny.m (Gast)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

> 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
Noch kein Account? Hier anmelden.