Programmeren in TI-83+ Assembly/Inleiding en inhoudsopgave

Uit Wikibooks

Inleiding[bewerken]

Welkom in het wikibook Programmeren in TI-83+ Assembly! Dit boek leert je om te programmeren in de programmeertaal Assembly voor de TI-83+ of de TI-84+. Dit zijn grafische rekenmachines van Texas Instruments. Er is ook een andere programmeertaal op deze rekenmachines, namelijk TI-Basic (zie het wikibook Programmeren in TI-Basic). Je kunt dit boek in principe doornemen en begrijpen zonder programmeerervaring, maar het wordt wel een stuk makkelijker als je al iets van programmeren weet, zodat ten minste de concepten je bekend voorkomen. Het is bijvoorbeeld een goed idee om van tevoren TI-Basic te leren; dit is een eenvoudige programmeertaal die uitstekend geschikt is om programmeerervaring op te doen.

Wat is assembly?[bewerken]

Assembly is een taal die de processor (bijna) direct kan begrijpen. De processor in de TI-83+ en TI-84+ is de Zilog Z80. Deze processor heeft alleen commando's (zogenaamde instructies) voor heel simpele zaken, bijvoorbeeld een geheugenplek uitlezen en de data in een opslagplaats zetten. Dat betekent dat heel "simpele" structuren (zoals een if- of for-statement in hogere programmeertalen, zoals TI-Basic) volledig met de hand moeten worden gemaakt. Voordat je een programma hebt dat nuttige dingen gaat doen, ben je meestal al pagina's code verder. Echter, je kunt met assembly wel veel meer, want het is veel flexibeler.

Voordelen en nadelen t.o.v. TI-Basic[bewerken]

Assembly heeft een aantal voor- en nadelen ten opzichte van TI-Basic. Hieronder volgt een kleine opsomming:

Voordelen[bewerken]

  • Assembly is veel sneller dan TI-Basic. Alle geavanceerde spelletjes voor de rekenmachine zou je bijvoorbeeld nooit in TI-Basic kunnen maken, omdat deze programmeertaal daarvoor gewoon te langzaam is.
  • Assembly heeft controle over de hele rekenmachine. Je kunt er veel meer mee dan met TI-Basic. De processor wordt namelijk direct aangesproken, zodat je in feite alles kunt doen wat het besturingssysteem ook zou kunnen. Het loont zich dus wel om assembly te leren. Enkele van de vele dingen die mogelijk zijn met assembly:
    • de run-indicator uit of aan zetten
    • tekst wit drukken op een zwarte achtergrond
    • nieuwe variabelen maken (bijvoorbeeld lijsten of AppVars) en ze aanpassen
    • bij Applications (ook een vorm van assembly) kun je zelfs de werking van het besturingssysteem aanpassen aan je wensen met zogenaamde Hooks
  • Vaak zijn assemblyprogramma's ook nog kleiner dan TI-Basic-programma's, tenzij je alleen commando's zoals Disp gebruikt.

Nadelen[bewerken]

  • Assembly moet op de computer geprogrammeerd en gecompileerd worden, voordat het naar de rekenmachine kan worden overgezonden.
  • Assembly is veel moeilijker te leren dan TI-Basic. Dit komt omdat heel veel commando's, die in TI-Basic ingebouwd zijn, eigenlijk een hele lijst assemblycodering bevatten. Denk aan Input; in assembly moet je zoiets helemaal zelf opbouwen door zelf alle toetsaanslagen te registeren, de corresponderende karakters ergens in het geheugen op te slaan en ze op het scherm te zetten zodat de gebruiker kan zien wat hij heeft getypt.
  • Als een assemblyprogramma crasht, is direct het RAM-geheugen gewist (of zelfs erger, als je bijvoorbeeld het besturingssysteem wist met het programma), bij TI-Basic verschijnt er gewoon een foutmelding. Dat komt omdat je de processor bij assembly direct aanspreekt. Daarom is het bij assembly heel belangrijk om de programma's goed te testen voor ze worden verzonden naar de rekenmachine.

Opzet van dit boek[bewerken]

Dit boek bestaat uit (op dit moment) 9 hoofdstukken. Ieder hoofdstuk bevat een aantal paragrafen; iedere paragraaf staat op een aparte pagina. Op iedere pagina van dit boek staat onderaan de pagina een balkje met de mogelijkheid om naar de volgende of vorige pagina te gaan. Verder staat er op iedere pagina rechtsbovenaan een beknopte versie van de inhoudsopgave. Op veel pagina's staan bovendien één of meerdere opgaven. Het wordt aangeraden om deze te maken, want daar leer je het meeste van.

Inhoudsopgave[bewerken]

  1. Assembly-basis
    1. Voorbereiding Zeer goed ontwikkeld. Revisiedatum: onbekend
    2. Het eerste programma Zeer goed ontwikkeld. Revisiedatum: onbekend
    3. Registers Zeer goed ontwikkeld. Revisiedatum: onbekend
    4. Variabelen Zeer goed ontwikkeld. Revisiedatum: onbekend
    5. De stack Goed ontwikkeld. Revisiedatum: onbekend
    6. Toets Zeer goed ontwikkeld. Revisiedatum: onbekend
  2. Controle
    1. Springen en subroutines Goed ontwikkeld. Revisiedatum: onbekend
    2. Optellen en aftrekken Goed ontwikkeld. Revisiedatum: onbekend
    3. Het register f Goed ontwikkeld. Revisiedatum: onbekend
    4. Voorwaarden Redelijk ontwikkeld. Revisiedatum: onbekend
    5. Loops Goed ontwikkeld. Revisiedatum: onbekend
    6. Toets Zeer goed ontwikkeld. Revisiedatum: onbekend
  3. Geheugenbeheer
    1. Getallenstelsels Redelijk ontwikkeld. Revisiedatum: onbekend
    2. Het gebruik van EQU Goed ontwikkeld. Revisiedatum: onbekend
    3. Arrays en matrices Goed ontwikkeld. Revisiedatum: onbekend
    4. Het gebruik van ldir Redelijk ontwikkeld. Revisiedatum: onbekend
    5. Verschuivingen In ontwikkeling. Revisiedatum: onbekend
    6. Toets Goed ontwikkeld. Revisiedatum: onbekend
  4. Input en output
    1. Logische en bit-instructies Zeer goed ontwikkeld. Revisiedatum: onbekend
    2. Strings schrijven Goed ontwikkeld. Revisiedatum: onbekend
    3. Karakters schrijven In ontwikkeling. Revisiedatum: onbekend
    4. getKey Redelijk ontwikkeld. Revisiedatum: onbekend
    5. Invoer door de gebruiker Nog vrijwel niets. Revisiedatum: onbekend
    6. Toets Goed ontwikkeld. Revisiedatum: onbekend
  5. Tekenen
    1. De tekenbuffer Goed ontwikkeld. Revisiedatum: onbekend
    2. Pixels tekenen In ontwikkeling. Revisiedatum: onbekend
    3. Horizontale lijnen Nog vrijwel niets. Revisiedatum: onbekend
    4. Diagonale lijnen Nog vrijwel niets. Revisiedatum: onbekend
    5. Werken met sprites Nog vrijwel niets. Revisiedatum: onbekend
    6. Toets Nog vrijwel niets. Revisiedatum: onbekend
  6. Registers en procedures
    1. Meer registers Goed ontwikkeld. Revisiedatum: onbekend
    2. De indexregisters Redelijk ontwikkeld. Revisiedatum: onbekend
    3. Werking van de stack In ontwikkeling. Revisiedatum: onbekend
    4. De instructies call en ret In ontwikkeling. Revisiedatum: onbekend
    5. De OP-registers Goed ontwikkeld. Revisiedatum: onbekend
    6. Toets Nog vrijwel niets. Revisiedatum: onbekend
  7. Applications
    1. Het maken van applications Redelijk ontwikkeld. Revisiedatum: onbekend
    2. De header Redelijk ontwikkeld. Revisiedatum: onbekend
    3. Verschillen in de code Nog vrijwel niets. Revisiedatum: onbekend
    4. Hooks Nog vrijwel niets. Revisiedatum: onbekend
    5. Toets Nog vrijwel niets. Revisiedatum: onbekend
  8. Gebruikersvariabelen
    1. Een variabele aanmaken Nog vrijwel niets. Revisiedatum: onbekend
    2. Toets Nog vrijwel niets. Revisiedatum: onbekend
  9. Extra
    1. Debuggen In ontwikkeling. Revisiedatum: onbekend
    2. Toets Nog vrijwel niets. Revisiedatum: onbekend
  10. Speciaal
    1. Problemen In ontwikkeling. Revisiedatum: onbekend
    2. De instructieset In ontwikkeling. Revisiedatum: onbekend
    3. bcalls In ontwikkeling. Revisiedatum: onbekend

Pdf- en printversie[bewerken]

Een printversie van dit boek is hier te vinden.
Een pdf-versie van dit boek is hier te vinden (klik op Downloaden als pdf-bestand).

Inleiding en inhoudsopgave Assembly-basis →
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.