Programmeren in TI-83+ Assembly/Assembly-basis/Het eerste programma
Uit Wikibooks
|
|
|
|
Nu zijn we klaar om te beginnen met het eerste programma.
Inhoud |
[bewerken] Het programma maken
[bewerken] Het programma intypen
Maak in Kladblok een nieuw bestand en typ in:
.nolist
#include "ti83plus.inc"
.list
.org $9D93
.db t2ByteTok, tAsmCmp
bcall(_ClrLCDFull) ; wis het LCD-scherm
ret ; terug naar de TI-OS
.end
.end
Let op: vervang de vier spaties aan het begin van sommige regels door een tab. Sla het bestand op als clrscrn.z80 in de map Source. Let op: een bestandsnaam van een programma mag alleen uit letters bestaan en niet meer dan acht tekens bevatten!
[bewerken] Het programma compileren
Start een MS-DOS-venster. Dat kan via het startmenu (Opdrachtprompt). Ga nu naar de submap Tasm, bijvoorbeeld met het commando
cd C:\Asm\Tasm
Sluit af met een enter. Geef daarna het commando
asm clrscrn
Er komt veel tekst in het DOS-scherm en als alles goed is gegaan, staat er op de laatste twee regels:
==== Klaar; het programma is opgeslagen in Exec\clrscrn.8xp ==== ==== Klaar ====
Het programma is nu klaar. De volgende stap is om het te testen.
[bewerken] Het programma testen
Open nu de TI-83 Flash Debugger. Klik op de knop Nieuw (met het vel papier erop). Klik op TI-83 Plus. Je ziet nu een scherm met bovenin een menubalk, klik hierin op Load en dan op RAM File... en ga naar de map Asm\Exec. Open het bestand CLRSCRN.8XP. Klik dan op het zwarte driehoekje om de rekenmachine te starten.
Je ziet nu een rekenmachine op het scherm. Klik achtereenvolgens op 2nd en dan op Catalog (boven de 0). Ga met de pijltjes naar Asm( en klik op de Enter-knop. Klik op PRGM en druk op Enter als het programma CLRSCRN geselecteerd is. Druk nogmaals op Enter om het programma uit te voeren. Er kunnen nu twee dingen gebeuren:
- Het scherm wordt leeg en er verschijnt Done op het scherm. Alles is goed gegaan: ga door naar de volgende paragraaf.
- Het scherm wordt leeg en het RAM wordt gewist. Het programma is gecrasht. Controleer of je alles goed hebt uitgevoerd... Als je er niet uitkomt, ga dan naar Problemen.
[bewerken] Hoe werkt dit programma?
Nu we weten wat dit programma doet, willen we natuurlijk ook graag weten hoe het werkt.
[bewerken] Standaard-code
Ieder programma bevat bepaalde regels aan het begin en het eind. Deze regels zie je hieronder.
.nolist
#include "ti83plus.inc"
.list
.org $9D93
.db t2ByteTok, tAsmCmp
; Het programma komt hier.
.end
.end
Alle regels die je hierboven ziet, staan dus in ieder programma dat je schrijft. Het gaat er nu niet helemaal om wat iedere regel van deze standaard-code doet, maar hieronder staat een kleine samenvatting.
- .nolist Dit heeft te maken met een list-file die TASM genereert.
- #include "ti83plus.inc" Het bestand ti83plus.inc wordt hier ingevoegd in de broncode. Dit bestand zorgt ervoor dat je commando's kunt geven met hun namen en niet met hun hex-codes.
- .list Dit heeft weer te maken met de list-file.
- .org $9D93 Dit geeft aan waar het programma wordt geladen in het geheugen.
- .db t2ByteTok, tAsmCmp Dit vertelt de rekenmachine in welke codering het programma is geschreven.
- .end Het einde van het programma. Er staan er twee, omdat TASM de laatste regel in het bestand overslaat...
Tot zover een korte beschrijving van de standaard-code.
[bewerken] De rest van de code
We houden nu het volgende stukje code over.
bcall(_ClrLCDFull) ; wis het LCD-scherm
ret ; terug naar de TI-OS
Dat ziet er al veel beter uit, toch? Regel voor regel zal ik uitleggen wat dit betekent.
Gedeelten achter een puntkomma zijn commentaar, hier doet de rekenmachine dus niets mee.
bcall(_ClrLCDFull) ; wis het LCD-scherm
Dit is een rom-call: een aanroep aan de rekenmachine om iets te doen, in dit geval dus het scherm leegmaken. Rom-calls worden altijd voorafgegaan door bcall, daarachter komt tussen haakjes de opdracht die je geeft. Deze opdrachten worden in ti83plus.inc omgezet in hexadecimale codes, waar de rekenmachine mee overweg kan. Vandaar de opdracht #include "ti83plus.inc" aan het begin, anders zou je de hex-codes in moeten geven.
ret ; terug naar de TI-OS
Deze regel zorgt ervoor dat de processor in de rekenmachine weer teruggaat naar de TI-OS, het besturingssysteem van de rekenmachine. Zonder deze regel zou het programma crashen (en het RAM-geheugen dus wissen) omdat de TI-OS nooit meer bereikt wordt. Denk er dus altijd aan om deze regel in te geven...
| ← Voorbereiding | Het eerste programma | Registers → |