Assembler programmering

Komme i gang
Hjemme PC
DOS
Eksterne assembler-linker

Komme i gang

Grunnlaget for undervisningen er kompendiet "Assembler programmering" som fås kjøpt av Tore Jonassen, rom 740, for kr. 130. På side 25 i kompendiet blir det forklart hvordan man assembler og linker et assemblerprogram med navn prog.asm, slik at man får en eksekverbar fil prog.exe (Vær oppmerksom på at du her på skolen ikke trenger å legge til de ekstra argumentene som brukes i kompendiet. Her skriver du f. eks. "tasm prog" og ikke "tasm /l /zi prog,prog" ; det siste behøves bare hvis det ikke er satt opp bat-filer som automatisk legger til de rette argumentene).

For å komme igang kan du prøve fremgangsmåten på programmet hallo.asm (som kun skriver ut linjen "Hallo verden" til skjermen). Last ned filen og start opp et DOS-vindu. Gå til katalogen der du lastet ned hallo.asm og skriv inn kommandoen

tasm hallo

(I filen tasm.bat er kommandoen tasm definert slik at dette utfører tasm /l /zi hallo,hallo slik det er angitt i kompendiet. Så her på skolen er det nok å bare skrive tasm hallo). Da blir det generert en objektfil hallo.obj. For å generere en exe-fil, må denne objektfilen linkes med

tlink hallo

Nå skal du ha fått en eksekverbar fil som heter hallo.exe. Denne kjøres ved å taste inn

hallo.exe

og da skrives linjen "Hallo verden" til skjermen. Når du skal lage egne programmer er det viktig at du skriver dem inn i en teksteditor som lagrer filene som ren ASCII-tekst. Mange Windows-editorer gjøre ikke det, det kommer f. eks. ofte et par ikke-ASCII tegn i starten og da vil ikke assembler programmet virke. Du kan f. eks. skrive inn programmene i den enkle DOS-editoren edit som lagrer alt som ASCII-tekst (skriv edit hallo.asm ved DOS-promptet), notepad fungerer også bra.  Den beste editoren for vårt formål er Ultraedit som er meget avansert og kan settes opp til å kjøre assembler DOS-kommandoene fra editoren, kan fargekode .asm filer etc. Den startes med K:\data\folvela\public\ultraedit\Uedit32. Les mer om hvordan du setter den opp og bruker den her.

En debugger er veldig nyttig, for det er ofte vanskelig å finne programmeringsfeil. Den er også nyttig for å se hva som skjer når et program kjøres. Etter at programmet er ferdig linket starter du debuggeren med

td hallo

Hjemme-PC

Har du hjemme-PC kan du laste ned tasm, tlink og td programmene og programmere der. Hvis du skriver noe galt i et assembler-program, er det ofte at maskinen låser seg når du kjører det. Men det skjer ikke noe værre enn at det ordner seg ved å reboote maskinen. Programmene du trenger finner du her (du trenger ikke laste ned disse på skolen, der kan du bare skrive tasm hallo rett inn i et DOS-vindu):
 
tasm.exe Assembler
tlink.exe Linker
td.exe Debugger, som er et "must"
tasm.bat  
tlink.bat bat-filer som må tilpasses din plassering av programmene
td.bat  

For å tilpasse bat-filene må du endre path i f.eks tasm.bat: J:\Prog\Dos\Tasm\Tasm /l /zi %1,%1 til den der du har lagt tasm.exe-filen på din egen maskin; f. eks til C:\Programmering\Assembler\bin\Tasm /l /zi %1,%1  Du kan fjerne alle linjer som har med Map å gjøre (eller kommentere dem bort med REM først i linja). Deretter kan du legge bat-filene i f.eks. katalogen C:\bat og derettet sørge for at C:\bat er med i PATH (sjekk ved å skrive PATH på DOS-kommandolinjen). Dette kan gjøres ved å legge til C:\bat i autoexec.bat med linjen PATH C:\bat;%PATH%

 DOS

Her er noen enkle DOS-kommandoer som kan være nyttig når man jobber med assembler i et DOS-vindu:

H:\> cd assembler           Gå til assembler-katalogen
H:\assembler> dir           List filene i katalogen
H:\assembler> del hallo.obj Delete hallo.obj
H:\assembler> del *.exe     Delete alle .exe filer
H:\assembler> mkdir katalog Lag en ny katalog med navn katalog
 

Eksterne assembler-linker

Her er noen nyttige eksterne linker. Spesielt er "The Art of Assembly Language Programming" bra; det er en omfattende online lærebok hvor det står det meste om assembler.

The Art of Assembly Language Programming Online lærebok/oppslagsverk.
Assembler resurrser En samling av assembler linker; tutorials, HOWTO's etc.
Assembler Innstruksjoner Alfabetisk liste over innstruksjoner med forklaring og syntaks.