Programmeren in TI-83+ Assembly/Geheugenbeheer/Het gebruik van ldir: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
Willem1 (overleg | bijdragen)
Nieuwe pagina aangemaakt met 'Met ldir kun je grote stukken data van de ene plaats naar de andere in het geheugen kopiëren. ==Wat ldir doet== ldir roep je als volgt aan: <pre> ldir</pre> Als l...'
 
Willem1 (overleg | bijdragen)
Regel 12:
Deze ingewikkelde structuur is er niet voor niets. Als je namelijk 10 in bc zet, in hl $AAAA en in de $AA00 dan worden juist de 10 bytes, volgend op $AAAA gekopieerd naar de 10 bytes volgend op $AA00. Dat komt namelijk doordat het proces dat wordt uitgevoerd als ldir wordt aangeroepen, eigenlijk een for-loop is met bc als teller. Iedere keer dat de lus doorlopen wordt, wordt er één byte gekopiëerd en daarna wordt ervoor gezorgd dat de volgende keer dat de lus doorlopen wordt, de volgende byte gekopieerd wordt.
 
Voorbeeld: kopieer 767 bytes die in het programma staan (als .db), naar '''PlotSScreen'''. (Voor het nut hiervan en voor uitleg wat '''PlotSScreen''' is, ga naar paragraaf [[Programmeren in TI-83+ Assembly/Tekenen/De tekenbuffer|TekenenDe tekenbuffer]]).
 
Inventarisatie:
* 767 bytes kopiëren, dus bc = 767
* kopiëren naar PlotSScreen, dus de = PlotSScreen
* kopiëren vanaf een label, dus hl = eenLabel
 
<pre> ld bc, 767
ld de, PlotSScreen
ld hl, dataLabel
ldir ; het eigenlijke kopiëren
ret ; terug naar TI-OS
 
DataLabel:
.db ...767 bytes aan data...</pre>
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.