Status register

En status register, flag register, eller tilstand kode register er en samling af status flag bits til en processor. Et eksempel er de FLAG registrere på x86-arkitekturen. Flagene kan være en del af et større register, såsom et program status word register.

Status register er en hardware register, som indeholder oplysninger om tilstanden af ​​processoren. Individuelle bits er implicit eller eksplicit læse og / eller skrevet af maskinkode instruktioner fuldbyrdende på processoren. Status register i en traditionel processor design omfatter mindst tre centrale flag: Zero, bære, og overløb, som monteres eller ryddes automatisk som effekter af aritmetiske og bit manipulation operationer. En eller flere af flagene kan derefter læses af en efterfølgende betinget hop instruktion eller ved en aritmetik, skift / rotere eller bitvis operation, typisk ved hjælp af carry Marker som input i tillæg til eventuelle udtrykkeligt har givet operander. Der er også processorer hvor andre klasser af instruktioner kan læse eller skrive den grundlæggende nul, bære eller overflow flag, såsom spærring, String eller dedikeret input / output instruktioner, for eksempel.

Nogle CPU-arkitekturer, såsom MIPS og Alpha, skal du ikke bruge en dedikeret flag registret. Andre ikke implicit sæt og / eller læse flag. Sådanne maskiner enten ikke videregive implicitte statusoplysninger mellem instruktioner på alle, eller de passerer det i en eksplicit valgte register generelle formål.

En status register kan ofte have andre områder samt, såsom mere specialiserede flag, afbryde sætte bit, og lignende typer af information. Under en interrupt, kan status af tråden ved at eksekvere bevares ved at lagre den aktuelle værdi af Statusregisteret sammen med tælleren programmet og andre aktive registre i maskinen stakken eller en anden reserverede område i hukommelsen.

Fælles flag

Dette er en liste over de mest almindelige CPU status register flag, implementeret i næsten alle moderne processorer.

Andre flag

Dette er en delvis liste over andre, mindre almindelige status flag, at forskellige CPU'er support.

CPU arkitekturer uden aritmetiske flag

Nogle RISC instruktionssæt arkitekturer afhænde centralt placerede aritmetiske resultat status bits. De citerede årsager sikringsanlæg mellem kommandoer indstilling / adgang status flag, som enten fører til forringelse af ydeevnen eller behov for ekstra hardware til at arbejde omkring problemer i pipeline, superskalare og spekulative processorer. MIPS DEC Alpha og AMD 29000 er eksempler på sådanne arkitekturer. I stedet for de fleste aritmetiske / logiske operationer indstilling status flag implicit, giver de eksplicitte sammenligning instruktioner, som lagrer resultat i et generelt formål registrere som sand / falsk. Betingede grene teste sand / falsk værdi i et register generelt formål. Nogle gange, sammenligne og hoppe operationer er kombineret i én instruktion.

Normalt sammenligning instruktioner fastsatte aritmetiske ligheder og uligheder. Test andre betingelser gerne Carry eller Overflow kan opnås ansætte ækvivalens formler. For eksempel, på MIPS, dobbelt-ord Desuden kan opnås med følgende samling kode:

"sltu" instruktion er "sæt 1, hvis mindre end, 0 ellers". I ovenstående kode, det effektivt beregner bære flag fra Alow + slag kommer, ved hjælp af følgende ækvivalens udtryk: resultat af tillæg skal være større-eller-lige end hver operand; hvis den er mindre i stedet, betyder det, at overløb opstod, dvs. en udfører.

  0   0
Forrige artikel Clayton Cramer
Næste artikel Bill Hager

Kommentarer - 0

Ingen kommentar

Tilføj en kommentar

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Tegn tilbage: 3000
captcha