Faculty Home Page
    Brno University of Technology, FEEC, DCI
;    Personal Pages of Pavel Kucera
  Department Home Page

 Personal Info
    Contact
    Curriculum Vitae
    Publications
    Products

 Projects
    GOLEM
    RTX
    ProjectBay

 Lectures
    BPPA
    KMIC
    MRTS
    MPOR
    MESI

 Others
    Quo Vadis, Eruditio?

 CAK
    Official Pages
   

 Links
    University
    Faculty
    Department


Use Firefox!

  
 
KMIC
Překlad a simulace programu v simulátoru Wookie171


Assembler, linker a simulátor naleznete v adresáři q:\jednocip\m68hc11\AS6811 na serveru DZIN nebo zde.

Překlad se provede dávkou:
a.bat *.asm
kde *.asm je zdrojový kód programu.

Správně provedený překlad vygeneruje soubor *.rel, který je nutno slinkovat dávkou:
l.bat *.rel
Dávka l.bat vyžaduje přítomnost souboru cvic.lnk (lokace segmentů DATA a CODE v paměti) ve stejném adresáři. Výstupem linkeru jsou soubory *.s19 a *.rst.

Soubor *.s19 je možné otevřít v simulátoru wookie171.exe. Při otevírání souboru v simulátoru postupujte podle těchto kroků:

  1. Po otevření souboru *.s19 v simulátoru ponechte první dialogové okno "SETHC11 Mode" beze změny a potvrďte ho tlačítkem OK.
  2. Ve druhém dialogovém okně "Choose LST file format" zvolte v rolovacím boxu "File Type" položku "AS6811/IASM11 [addr code]" a dialogové okno potvrďte tlačítkem OK.
  3. V okně "Code View" stiskněte tlačítko "Load LST file" a nahrajte soubor *.rst.
  4. V dialogovém okně "Choose LST file format" zvolte v rolovacím boxu "File Type" položku "AS6811/IASM11 [addr code]".


Assembler AS6811
						
				
  Číselné soustavy  
$%, 0b, 0B ;Binarni cislo $&, 0o, 0O, 0q, 0Q ;Oktalove cislo $#, 0d, 0D ;Dekadicke cislo $$, 0h, 0H, 0x, 0X ;Hexadecimalni cislo Příklady: $$12, 0h12, 0H12, 0x12, 0X12 ;hexadecimalni cislo 12 $&45, 0o45, 0O45, 0q45, 0Q45 ;oktalove cislo 45 $#123, 0d123, 0D123 ;dekadicke cislo 123 $%10101010, 0b10101010, 0B10101010 ;binarni cislo 10101010
  Definice názvu modulu  
.module retezec ;retezec bude pridan do vystupniho souboru prekladu jako identifikace modulu Příklad: .module MujProgram ;definuje nazev tohoto modulu jako "MujProgram"
  Definice návěšti  
JMENO_NAVESTI: ;definuje navest v programu (adresu) na niz je mozne se odkazovat pomoci jejiho jmena "JMENO_NAVESTI"
  Definice segmentu  
.area DATA (REL) ;segment pro data .area CODE (REL) ;segment pro program
  Definice dat  
.byte exp ;definice jednoho bajtu (8 bitu) .db exp ;totez .byte exp1,exp2,expn ;definice jednobajtovych vyrazu jdoucich po sobe .db exp1,exp2,expn ;totez .word exp ;definice dvou bajtu (16 bitu) .dw exp ;totez .word exp1,exp2,expn ;definice dvoubajtovych vyrazu jdoucich po sobe .dw exp1,exp2,expn ;totez .blkb N ;vymezeni N bajtu v pameti .ds N ;totez .blkw N ;vymezeni N dvoubajtu (slov) v pameti .ascii /retezec/ ;definice retezce Příklady: N1: .byte 10 ;definice bajtu s inicializaci na hodnotu 10 dekadicky N1: .db 10 ;totez co predchozi N2: .byte 0h10 ;definice bajtu s inicializaci na hodnotu 10 hexadecimalne N3: .byte 0x10 ;totez co predchozi N5: .byte 0b10101010 ;definice bajtu s inicializaci na hodnotu 10101010 binarne N6: .byte 'a ;definice bajtu dle ascii hodnoty znaku 'a' HLASKA: .byte 'a, 'h, 'o, 'j ;definice pole bajtu podle ascii hodnot po sobe jdoucich znaku "ahoj" POLE1: .byte 1,2,3,4,5,6,7,100,-10,0 ;definice pole o velikosti 10 bajtu + inicializace N7: .word 14523 ;definice dvou bajtu s inicializaci na hodnotu 14523 dekadicky N8: .word 0b1000000010101010 ;definice dvou bajtu s inicializaci na hodnotu 1000000010101010 binarne POLE2: .blbk 25 ;vymezi prostoru v pameti pro 25 bajtu POLE3: .blkw 25 ;vymezi prostoru v pameti pro 50 bajtu (25 slov) ZPRAVA: .ascii /HELLO WORLD/ ;vymezi v pameti blok obsahujici ascii retezec "HELLO WORLD"
  Definice symbolicke konstanty  
sym1 .equ expr ;je ekvivalentni sym1 = expr Příklady: DELKA .equ 10 ;odted se jakykoliv vyskyt navesti DELKA nahradi cislem 10 CISLO: .blkw 1 CISLO_H .equ CISLO ;navesti CISLO_H ukazuje na vyssi bajt 16-ti bitoveho slova CISLO CISLO_L .equ CISLO + 1 ;navesti CISLO_L ukazuje na nizsi bajt 16-ti bitoveho slova CISLO
  Ukázky programů  
;nastavi VYSL podle CISLO tak, ze ; CISLO = 127 -> VYSL = 1 ; CISLO < 127 -> VYSL = 3 ; CISLO > 127 -> VYSL = 2 .module nastav .area DATA (REL) CISLO: .blkb 1 VYSL: .blkb 1 .area CODE (REL) ldaa #0x02 staa VYSL ldaa CISLO cmpa #0x7F bne VM dec VYSL jmp END VM: bls MN jmp END MN: inc VYSL END: jmp END ;Vyplni blok dat od adresy POLE1 cisly 1-32 ;a nasledne ho zkopiruje do oblasti POLE2 .module pole1 .area DATA (REL) DELKA .equ 32 POLE1: .blkb DELKA POLE2: .blkb DELKA .area CODE (REL) ldx #POLE1 ldaa #1 STORE: staa 0,x inx inca cmpa #DELKA+1 bne STORE ldx #POLE1 ldy #POLE2 ldab #0 MOVE: ldaa 0,x staa 0,y inx iny incb cmpb #DELKA bne MOVE END: jmp END


Zpět 
Mail Address   Ústav automatizace a měřicí techniky, VUT v Brně
Kolejní 2906/4, 612 00 Brno, Czech Republic
Phone   (+420) 541141154
Fax   (+420) 541141123
     
Last Update: 08/08/2008
By: kucera@feec.vutbr.cz