Forum: Compiler & IDEs Frage zu Microchip XC16-Compiler mit Assembler


von jan t. (Gast)


Lesenswert?

Hallo,

ein Buffer wird sowohl innerhalb von C, als auch in Assemblerteilen des 
Programms gemeinsam genutzt. In C habe ich den Buffer daher wie folgt 
definiert:

unsigned int    Buffer[10];

Nun möchte ich die 10 einzelnen Werte auch in Assembler nacheinander 
bearbeiten.

Wie rufe ich dazu die Werte in Assembler auf, so dass ich sie zum 
Beispiel nacheinander ins Register W0 lade?

von jan t. (Gast)


Lesenswert?

Kann hier wirklich niemand die Frage beantworten?

von Til S. (Firma: SEGGER) (til_s)


Lesenswert?

Das einfachste bei solchen Fragestellungen ist sich vom Compiler 
Assembler Code für diese Aufgabe erzeugen lassen und sich diesen 
anschauen.

.global   _Buffer

.text
; Copy Buffer[2] to w0
mov       Buffer, w1
mov       #2, w2
add       w1, w2, w1
mov       [w1], w0

.END

von jan t. (Gast)


Lesenswert?

Danke :-)

von Stampede (Gast)


Lesenswert?

Im Kompilerhandbuch gibts auch eine Sektion die heißt "Mixing C and 
Assembly", da wird genau auf diese Fragen eingegangen.

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.