Co to jest rejestr statusu?
Rejestr stanu - znany również jako rejestr flagi, słowo statusu programu i rejestr kodu warunku - jest zdefiniowany jako zbiór bitów flagi wewnątrz procesora. Rejestr jest układem procesora i przypomina lokalizację pamięci, co oznacza, że dane można z niego zapisywać i odczytywać. W przeciwieństwie do lokalizacji w pamięci rejestr statusu często nie ma adresu, ponieważ mikroprocesor używa go wewnętrznie. W jednostce centralnej (CPU), która jest 8-bitowa, bit rejestru statusu może być ustawiony , równy liczbie 1 lub wyczyszczony , równy liczbie 0, na podstawie wyników różnych operacji procesora. Procesor czasami ustawia lub usuwa same bity, ale innym razem określona instrukcja programu ustawia lub usuwa bity.
Bity rejestru statusu są również nazywane flagami lub bitami flag i są używane przez programistę do pewnych celów programowania. Każda flaga w rejestrze stanu ma unikalny cel. Flaga przenoszenia ustawia się, jeśli poprzednia operacja spowodowała przepełnienie siódmej bitu lub flagi ujemnej lub spowodowała niedopełnienie flagi przenoszenia. Ustawia się podczas przesunięć logiki, porównania i arytmetyki. Flaga zerowa jest ustawiana, jeśli ostatnim wynikiem operacji było 0.
Flaga zwana „blokowaniem przerwań” działa, zezwalając na lub przerywając działanie przerwań, które są instrukcjami, które tymczasowo zatrzymują pewne operacje, aby można było wykonać inne operacje. Kiedy ta konkretna flaga jest ustawiona, przerwania nie mogą działać, ale gdy jest jasne, dozwolone są przerwania. Inna flaga zwana flagą dziesiętną pozwala procesorowi postępować zgodnie z bardziej zaawansowanym trybem binarnym w celu wykonania bezbłędnych równań arytmetycznych. Po ustawieniu flagi używa tego zaawansowanego trybu binarnego. Kolejnym bitem rejestru jest bit flagi przerwania, który ustawia się po wykonaniu polecenia Force Interrupt (BRK).
Flaga przepełnienia jest ustawiana podczas operacji arytmetycznych, jeśli operacja daje niepoprawny wynik. Flaga ujemna ustawia się, jeśli wynik ostatniej operacji miał ustawiony na 1. Ostatnia flaga, zwana bitem 5, jest bezimienna i zawsze ustawiona na 1. Programiści zasadniczo nie mają zastosowania dla tego konkretnego bitu.
Rejestr FLAGS jest jednym przykładem rejestru statusu, który był używany w niektórych jednostkach centralnego procesora i zawierał bieżące stany procesora. Miał 16 bitów szerokości i zastąpiły go odpowiednio EFLAGS i RFLAGS, rejestr 32-bitowy i rejestr 64-bitowy. Rejestr FLAGS miał jednak pewne flagi, które różniły się od pierwotnego rejestru 8-bitowego, w tym flagę parzystości, flagę pomocniczą i flagę pułapki.