18.07.2013 Views

Nintendo Entertainment System

Nintendo Entertainment System

Nintendo Entertainment System

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

KAPITTEL 3. CPU-EN<br />

Bit Flagg Navn Beskrivelse<br />

0 C Carry Holder en bit i mente ved addisjon og en lånebit ved subtraksjon.<br />

Indikerer om en addisjon har resultert i et tall over<br />

255 eller en subtraksjon har resultert i et tall under 0 (se<br />

avsnitt 3.2.3)<br />

1 Z Zero Indikerer om forrige instruksjon resulterte i 0<br />

2 I Interrupt<br />

disable<br />

Brukes for å aktivere/deaktivere IRQ-avbrudd (se avsnitt<br />

3.5)<br />

3 D Decimal Ubrukt i NES-prosessoren<br />

4 B Break Indikerer om det har skjedd et programvareavbrudd eller<br />

ikke (se avsnitt 3.5)<br />

5 - - Ubrukt bit<br />

6 V Overflow Indikerer om forrige regneoperasjon resulterte i en overflyt<br />

(se avsnitt 3.2.3)<br />

7 N Negative Indikerer om forrige instruksjon resulterte i et negativt tall<br />

(se avsnitt 3.2.3)<br />

De viktigste flaggene for oss vil være C, Z, N og en sjelden gang V. Dette er flagg som settes<br />

basert på resultatet fra forrige instruksjon. Ikke alle instruksjoner påvirker flaggene, men de som<br />

på en eller annen måte gir et resultat (for eksempel aritmetiske operasjoner, bitoperasjoner,<br />

henting fra minnet og så videre) gjør det. Poenget med flaggene er at noen av instruksjonene<br />

kan bruke informasjonen i disse. Noen instruksjoner kan for eksempel endre programflyten til<br />

CPU-en basert på om et flagg er satt eller ikke.<br />

Flaggene I, D og B er mer spesielle. Disse har ikke noe med forgående instruksjon å gjøre slik<br />

som de andre har. D-flagget er litt spesielt i NES-sammenheng, da det faktisk ikke har noen som<br />

helst funksjon. En ordinær 6502-prosessor har mulighet for å regne med tall i et spesielt binary<br />

coded decimal (BCD)-format. I dette formatet er hver byte delt inn i to deler på 4 bits som<br />

representerer hver sine sifre. Tallet %10010111 er for eksempel tallet 97 på BCD-form, siden<br />

10012 = 9 og 01112 = 7. Når CPU-en er i decimal mode kan den regne korrekt med slike tall<br />

(slik at $15 + $05 blir $20 i stedet for $1A og så videre). I NES-prosessoren er delen av kjernen<br />

som tar seg av dette rett og slett tatt bort 1 , men flagget er fortsatt igjen.<br />

1 Det spekuleres i hvorfor. Mest sannsynlig ble decimal mode, som var en patentert teknologi, fjernet fra 6502<br />

for at <strong>Nintendo</strong> ikke skulle bli saksøkt av Commodore (som på den tiden hadde kjøpt opp MOS Technology som<br />

designet 6502) når de lanserte NES i USA.

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

Saved successfully!

Ooh no, something went wrong!