Asembler.pdf

(158 KB) Pobierz
Programowanie mikrokontrolerów Asembler AVR, cz¦±¢ 1
Programowaniemikrokontrolerów
AsemblerAVR,cz¦±¢1
MarcinEngelMarcinPeczarski
22pa¹dziernika2008
111691420.002.png
StrukturaprogramuwAsemblerze
I Programzaczynasi¦dyrektyw¡ .INCLUDE ,którawł¡cza
definicjeniezb¦dnedlakonkretnegomodelumikrokontrolera.
I DlaATmega16b¦dzieto
.INCLUDE"m16def.inc"
I lub
.INCLUDE"C:\VMLAB\include\m16def.inc"
I lub
.INCLUDE"C:\PROGRA~1\vmlab\include\m16def.inc"
I Wł¡czanyplikzawieradyrektyw¦:
.DEVICEATmega16
I Dyrektywy .INCLUDE mo»emyrównie»u»y¢wdowolnym
miejscuprogramudowł¡czeniakoduumieszczonegowinnym
pliku.
111691420.003.png
StrukturaprogramuwAsemblerze,cd.
I Programskładasi¦ztrzechsegmentówodpowiadaj¡cych
poszczególnymprzestrzeniomadresowymmikrokontrolera:
.DSEG ;segmentdanych,SRAM
.ESEG ;segmentdanychnieulotnych,EEPROM
.CSEG ;segmentkodu,FLASH
I Segmentymo»nadowolnieprzeplata¢.
111691420.004.png
Definiowaniestałychsymbolicznych
I Stałemo»emydefiniowa¢nast¦puj¡co
.EQUstała=wyra»enie
.SETstała=wyra»enie
I Dyrektywa .EQU działajednorazowo.
I Dyrektywa .SET pozwalanawielokrotneprzedefiniowywanie
stałej.
I Przykłady:
.EQUSYS_FREQ=16
.EQUBLINKER_HALF_PERIOD=3*SYS_FREQ
111691420.005.png
Alternatywnenazwyrejestrów
I Abypoprawi¢czytelno±¢kodu,rejestrommo»naprzypisywa¢
nazwydyrektyw¡ .DEF iuniewa»nia¢tenazwydyrektyw¡
.UNDEF .
I Wtensposóbzdefiniowanorejestry XL , XH , YL , YH , ZL i ZH .
I Przykład:
.DEFAKUMULATOR=R16
LDIAKUMULATOR,7 ;wykonasi¦LDIR16,7
.UNDEFAKUMULATOR
.DEFAKUMULATOR=R17
LDIAKUMULATOR,8 ;wykonasi¦LDIR17,8
111691420.001.png
Zgłoś jeśli naruszono regulamin