Nintendo Entertainment System
Nintendo Entertainment System
Nintendo Entertainment System
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.