8051-assembler: kom i gang med DOS/51

8051 er en familie af 8-bit-processorer, som arbejder med bytes og enkelte bit. Med assembler fortæller du præcist, hvad processoren skal flytte, lægge sammen eller teste. Du kan prøve det med det samme i den gratis DOS/51-browseremulator—uden programmør eller fysisk print.

Philips P80C31SFPN-mikrocontroller i DIP-40 fra iMania
Den ROM-løse 80C31: en klassisk CPU i 8051-familien med ekstern programhukommelse.

Begynd med de vigtigste begreber

  • A er akkumulatoren: det vigtigste register til beregninger og dataoverførsel.
  • MOV kopierer en værdi med destinationen først. MOV A,#42 indlæser tallet 42; MOV A,0x30 læser byten på den interne adresse 0x30. Tegnet # gør forskellen.
  • MOVX tilgår ekstern datahukommelse, mens MOVC læser programhukommelse. Det samme adressetal kan derfor pege på forskellige fysiske hukommelser.
  • JZ/JNZ tester selve A. Der findes ikke et særskilt nulflag. Carry bruges blandt andet af ADDC og SUBB.

Dit første program: udskriv en stjerne

Åbn DOS/51, skriv nano first.asm, og indtast programmet. Gem med Ctrl-O, afslut med Ctrl-X, og skriv derefter asm -r first.asm.

clr 0x99         ; TI = 0
mov a,#42        ; ASCII '*'
mov 0x99,a       ; SBUF
wait_tx:
    jnb 0x99,wait_tx
clr 0x99
ret

Programmet udskriver * og vender tilbage til kommandolinjen. Byteadressen 0x99 er UART’ens sendebuffer SBUF; bitadressen 0x99 er TI, som viser, at afsendelsen er færdig. Instruktionen afgør, hvilket adresserum der bruges. DOS/51 har allerede konfigureret UART’en, så eksemplet ændrer ikke konsollens hastighed.

Fra emulatoren til en rigtig 80C31

Philips P80C31SFPN i DIP-40 er ROM-løs: den kræver ekstern programhukommelse, clock, reset og et kredsløb, som fastholder adressen. Emulatorens eksterne RAM og SD-kort hører til printet; de er ikke indbygget RAM eller en SPI-enhed inde i CPU’en. Vil du bygge selv, så læs vores guide til et komplet 80C31-system på breadboard.

Klar til den komplette reference?

The Ultimate 8051 Assembly Guide gennemgår alle 44 standardmnemonics, 111 operandformer og 255 definerede opcodebytes samt adressering, flag, stak, eksempler og periferi. Den skelner mellem den klassiske CPU, Philips-specifik dokumentation og de funktioner, emulatoren faktisk modellerer. Den fulde reference er på engelsk.

Vil du have en feltmanual i retrostil? Nye SD-kort i emulatoren indeholder ASCII-udgaven. Har du allerede et kort, så klik på Install field manual; dine eksisterende filer bevares. Hent indholdsfortegnelsen med sdget guide51.txt, og læs den med cat guide51.txt. Kapitlerne er opdelt, så de passer på den lille RAM-disk.

Læs The Ultimate 8051 Assembly Guide →