18.07.2013 Views

Nintendo Entertainment System

Nintendo Entertainment System

Nintendo Entertainment System

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

3.2. INSTRUKSJONER<br />

Hvilken av disse som er mest hensiktsmessig kommer an på situasjonen. Noen ganger trenger<br />

vi å beholde verdien som allerede ligger i A-registeret. Da velger vi den øverste. Ellers vil den<br />

nederste være kjappest å utføre.<br />

Vi har også noen instruksjoner for å manipulere noen av flaggene i P-registeret:<br />

Instruksjon Navn<br />

SEC SEt Carry<br />

CLC CLear Carry<br />

SEI SEt Interrupt<br />

CLI CLear Interrupt<br />

CLV CLear oVerflow<br />

Disse brukes altså til å henholdvis sette (flagg-biten blir 1) eller fjerne (flagg-biten blir 0) C-, Iog<br />

V-flaggene (V kan bare fjernes).<br />

3.2.3 Tallregning<br />

6502-prosessoren har en nokså primitiv regneenhet innebygd. Denne benyttes kan utføre addisjon<br />

og subtraksjon, og vi kan be den gjøre forskjellige operasjoner med følgende instruksjoner:<br />

Addisjon (ADC)<br />

Instruksjon Navn<br />

ADC ADd with Carry<br />

SBC SuBtract with Carry<br />

INX INcrement X<br />

DEX DEcrement X<br />

INY INcrement Y<br />

DEY DEcrement Y<br />

INC INcrement<br />

DEC DEcrement<br />

Instruksjonen ADC legger sammen verdien som ligger i A og argumentverdien, i tillegg til carryflagget.<br />

Resultatet legges i A. Carry er det vi på norsk kaller «mente». Som nevnt i forrige seksjon<br />

består statusregisteret til proessoren av en rekke biter som kalles flagg, som brukes til å holde<br />

styr på forskjellige ting. Et av disse er det såkalte carry-flagget, som altså kan holde én bit i<br />

mente. Formålet med dette er å gjøre oss i stand til å legge sammen tall som er større enn det<br />

A-registeret kan ta i én omgang. Hvis A for eksempel inneholder 255 og så legger vi til 3, så får<br />

vi problemer. Resultatet blir 258, et tall som tar opp 9 biter, og det er åpenbart ikke plass til hele<br />

tallet i A. Når dette skjer, kalles det en overflow. Det som vil skje da er at de 8 laveste bitene<br />

(de som er på de 8 laveste plassene) lagres i A, og så settes den niende biten inn i carry-flagget

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!