Programmeren in TI-83+ Assembly/Controle/Het register f

Uit Wikibooks
Naar navigatie springen Naar zoeken springen

Programmeren in TI-83+ Assembly

Uit het hoofdstuk Registers ken je al het register f. Dit register is echter anders dan de andere registers die je al kent; je kunt het niet rechtstreeks wijzigen.

De opbouw van het register f[bewerken]

Hieronder zie je een schema hoe het f-register in elkaar zit. De bovenste rij geeft het nummer van de bit, de onderste rij geeft de functie. Iedere kolom in de tabel is een vlag; zo'n vlag is een bit in het register f.

7 6 5 4 3 2 1 0
Sign Zero - Half-carry - Parity-overflow Add-subtract Carry

Er zijn twee vlaggen die nu voor ons van belang zijn. Als een vlag 1 is (ook wel set genoemd; 0 heet ook wel reset), betekent dit het volgende.

Zero[bewerken]

De vorige berekening had als uitkomst 0. Ofwel, als de processor een berekening uitvoert (bijvoorbeeld met add of sub) waarbij de uitkomst 0 is, dan zorgt hij ervoor dat deze vlag set wordt.

Carry[bewerken]

De vorige berekening had een uitkomst die groter was dan wat er in het register paste. Zie het volgende voorbeeld. Tel de (binaire) getallen 1101 en 1000 op. Het resultaat is 10101. Ofwel, er is één bit meer nodig om het antwoord op te slaan. Het resultaat van deze bewerking wordt dan 0101 en de Carry-vlag wordt 1 gemaakt. Als een aftreksom een antwoord kleiner dan nul opleverde, gaat de Carry-vlag ook aan. Wil je de Carry-vlag 1 maken, dan gebruik je de instructie scf (Set Carry Flag) Wil je de Carry-vlag veranderen (dus 1 wordt 0 en omgedraaid), dan gebruik je de instructie ccf.

InformatieWijzigen van f
Zoals hierboven gezegd is, kun je f niet zomaar wijzigen:
    ld f, 5

werkt bijvoorbeeld niet. Je kunt wel af aanpassen, f verandert dan mee. Denk eraan dat de vlaggen dan dus weg zijn.


ArrowLeftNavbox.svg ← Optellen en aftrekken Het register f Voorwaarden → ArrowRightNavbox.svg
Informatie afkomstig van http://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.