1 / 9

AVR Assembler

AVR Assembler. Symboly jsou alfanumerickou reprezentací číselných nebo znakových konstant, adres apod. symbol se může skládat z malých a velkých znaků anglické abecedy (a-z, A-Z), číslic (0-9) a znaku podtržení (_) symbol nesmí začínat číslicí překladač nerozlišuje malá a velká písmena

kele
Download Presentation

AVR Assembler

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. AVR Assembler Symboly • jsou alfanumerickou reprezentací číselných nebo znakových konstant, adres apod. • symbol se může skládat z malých a velkých znaků anglické abecedy (a-z, A-Z), číslic (0-9) a znaku podtržení (_) • symbol nesmí začínat číslicí • překladač nerozlišuje malá a velká písmena • některé symboly jsou vyhrazeny • mnemokódy instrukcí (např. MOV) • funkce asembleru (např. LOW) • rezervované operandy (např. R0 až R31) Návěští • zvláštní případ symbolu • platí pro něj pravidla uvedená výše • návěští je ukončeno dvojtečkou (:) • používá se k označení určitého místa v programu a pro pojmenovávání proměnných

  2. AVR Assembler Čísla • překladač podporuje čísla v soustavách se základy 2, 8, 10 a 16 • pro určení soustavy se používá předpony • dvojkovému číslu předchází sekvence 0b (např. 0b11111010) • osmičkovému číslu předchází tzv. vodící nula (např. 0123) • desítkové hodnoty se zapisují běžným způsobem • šestnáckovému číslu předchází dolar ($) nebo sekvence 0x (např. $FF nebo 0xFF) Řetězcové literály • znakové hodnoty se uzavírají mezi apostrofy (') • řetězcové literály se uzavírají mezi uvozovky (") Lokační čítač programového segmentu • hodnota lokačního čítače (aktuální pozice) pro programový segment je dostupná prostřednictvím symbolu PC

  3. AVR Assembler– operátory

  4. AVR Assembler – funkce

  5. AVR Assembler – direktivy .EQU – definice symbolu • slouží pro pojmenování literálu nebo pro zavedení nového jména pro stávající symbol • formát: .equ symbol=výraz .SET – nastavení hodnoty symbolu • podobný účel jako .EQU, rozdíl je v tom, že symbol zavedený pomocí .EQU nemůže měnit svou hodnotu • formát: .set symbol=výraz .DEF – definice symbolického jména registru • umožňuje zavádět pro registry nové symboly • jeden registr může mít více takových aliasů, symboly je možné redefinovat • formát: .def symbol=registr .CSEG / .DSEG / .ESEG – výběr segmentu • slouží k výběru jednoho ze tří paměťových prostorů • .CSEG – programový segment (paměť programu) • .DSEG – datový segment (SRAM) • .ESEG – segment E2PROM • výchozím segmentem je .CSEG

  6. AVR Assembler – direktivy .ORG – nastavení hodnoty lokačního čítače • výchozí hodnota lokačního čítače pro segmenty .CSEG a .ESEG je nula (0), pro .DSEG je $60 (přeskočí se registrové pole a V/V registry • formát:.org výraz .BYTE – vyhrazení prostoru v bajtech • slouží k vyhrazení prostoru v datovém segmentu (RAM) • formát: [návěští:] .byte výraz • výraz udává počet bajtů, které chceme pro proměnnou vyhradit .DB – uložení konstanty do paměti programu • slouží k uložení konstanty (v rozměru bajtu) do FLASH nebo E2PROM • v případě programové paměti dochází k zarovnávání hodnot jednoho řádku na sudý počet bajtů • formát: [návěští:] .db výraz[,výraz…] .DW – uložení konstanty do paměti programu • slouží k uložení konstanty (v rozměru slova) do FLASH nebo E2PROM • formát: [návěští:] .dw výraz[,výraz…]

  7. AVR Assembler – direktivy .INCLUDE – vložení obsahu externího souboru • vloží na místo direktivy obsah jiného souboru • formát:.include „jméno_souboru" .DEVICE – definice typu mikroprocesoru • určuje typ mikroprocesoru, pro který se provádí překlad • zajišťuje kontrolu rozsahu adres ve FLASH, RAM a E2PROM • zajišťuje kontrolu platné instrukční sady • formát: .device typ_mikroprocesoru .EXIT– uložení překladu • signalizuje konec zdrojového textu, předčasně ukončí překlad • formát: .exit .LIST – zapnutí generování výpisu • formát: .list .NOLIST – vypnutí generování výpisu • formát: .nolist .LISTMAC– zapnutí expanze maker ve výpisu • formát: .listmac

  8. AVR Assembler – makra .MACRO – definice makra • uvozuje počátek makra, parametrem je jméno makra • je-li makro použito, dochází k jeho rozvinutí (expanzi) • makro může mít až 10 parametrů • na parametry se v těle makra odkazujeme přes symboly @0 až @9 • při použití makra se parametry odělují čárkami • formát: .macro jméno_makra .ENDMACRO – konec definice makra • formát: .endmacro Příklad makra .macro SUBI16 subi @1, low(@0) sbci @2, high(@0) .endmacro .cseg subi16 $1234,r16,r17

  9. Definiční soubory • C:\Program Files\Atmel\AVR Tools\AvrAssembler\Appnotes • Pro každý typ mikroprocesoru AVR jeden definiční soubor, který obsahuje • určení typu mikroprocesoru – direktiva .device • definice V/V registrů • definice ukazatelových registrů • definice konců paměťových segmentů • definice vektorů přerušení • Pro procesor ATmega8 se příslušný definiční soubor jmenuje m8def.inc

More Related