Mikä on tilarekisteri?

Tilarekisteri – joka tunnetaan myös nimellä lippurekisteri, ohjelman tilasana ja ehtokoodirekisteri – määritellään prosessin sisällä olevien lippubittien joukkona. Rekisteri on prosessoripiiri ja muistuttaa muistipaikkaa, joten tietoja voidaan kirjoittaa ja lukea siitä. Toisin kuin muistipaikka, tilarekisterillä ei usein ole osoitetta, koska mikroprosessori käyttää sitä sisäisesti. Keskusyksikössä (CPU), joka on 8-bittinen, tilarekisteribitti voidaan asettaa, joka on yhtä suuri kuin numero 1, tai se voidaan tyhjentää, joka on yhtä suuri kuin numero 0 prosessorin eri tulosten perusteella. Prosessori asettaa tai tyhjentää bitit joskus itse, mutta toisinaan tietty ohjelmakäsky asettaa tai tyhjentää bitit.

Tilarekisteribittejä kutsutaan myös lipuiksi tai lippubitteiksi, ja ohjelmoija käyttää niitä tiettyihin ohjelmointitarkoituksiin. Jokaisella tilarekisterin lipulla on ainutlaatuinen tarkoitus. Siirtolippu asettaa, jos edellinen toiminto teki seitsemännen bitin – tai negatiivisen lipun – ylivuotona tai teki kantoalipun alivuodon. Se asetetaan logiikan, vertailun ja aritmeettisten muutosten aikana. Nollalippu asetetaan, jos viimeisin toimintatulos oli 0.

Lippu nimeltä “keskeytyksen esto” toimii sallimalla tai estämällä keskeytykset, jotka ovat ohjeita, jotka keskeyttävät väliaikaisesti tiettyjä toimintoja, jotta muut toiminnot voidaan suorittaa. Kun tämä lippu asetetaan, keskeytykset eivät saa toimia, mutta kun se on selvä, keskeytykset ovat sallittuja. Toinen lippu, jota kutsutaan desimaalilipuksi, sallii prosessorin seurata kehittyneempää binäärimoodia virheettömien aritmeettisten yhtälöiden suorittamiseksi. Kun lippu asetetaan, se käyttää tätä edistynyttä binääritilaa. Toinen rekisteribitti on taukolippubitti, joka asetetaan, kun Force Interrupt (BRK) -komento suoritetaan.

Ylivuotolippu asetetaan aritmeettisten toimintojen aikana, jos operaatio antaa virheellisen tuloksen. Negatiivinen lippu asetetaan, jos viimeisimmän operaation tulos on asetettu arvoon 1. Viimeinen lippu, nimeltään bitti 5, on nimetön ja aina asetettu arvoon 1. Ohjelmoijilla ei ole käytännössä mitään hyötyä tälle tietylle bitille.

FLAGS -rekisteri on yksi esimerkki tilarekisteristä, jota käytettiin tietyissä keskusprosessoriyksiköissä ja joka sisälsi prosessorin nykyiset tilat. Se oli 16 bittiä leveä ja sen jälkeen EFLAGS ja RFLAGS, 32-bittinen rekisteri ja 64-bittinen rekisteri. FLAGS-rekisterissä oli kuitenkin joitain lippuja, jotka olivat erilaisia ​​kuin alkuperäinen 8-bittinen rekisteri, mukaan lukien pariteetti-, apulippu ja ansa-lippu.