De 8085-microprocessor heeft vijf vlaggen in het PSW-register (Program Status Word). Deze vlaggen worden ingesteld of opnieuw ingesteld op basis van de resultaten van rekenkundige en logische bewerkingen. Ze worden gebruikt voor voorwaardelijke vertakkingen en programmacontrole. Hier is een overzicht:
1. Vlag dragen (CY): Deze vlag wordt op 1 gezet als een rekenkundige bewerking het meest significante bit (MSB) van het resultaat overdraagt of leent. Het is cruciaal voor rekenkundige bewerkingen van meerdere bytes (optellen of aftrekken van getallen groter dan 8 bits) en wordt ook gebruikt bij sommige logische bewerkingen. Bijvoorbeeld:
* Toevoeging: Als het optellen van twee 8-bits getallen resulteert in een som groter dan 255 (FF in hexadecimaal), wordt CY ingesteld.
* Aftrekken: Als het aftrekken van een groter getal van een kleiner getal resulteert in een lening, wordt CY ingesteld.
* Roteren/verschuiven: Bepaalde rotatie-instructies kunnen CY beïnvloeden door de bit die uit het register is verschoven naar de CY-vlag te verplaatsen.
2. Pariteitsvlag (P): Deze vlag weerspiegelt de pariteit van het resultaat van een bewerking. Het wordt ingesteld op 1 als het resultaat een even aantal 1's heeft (even pariteit), en 0 als het resultaat een oneven aantal 1's heeft (oneven pariteit). Het wordt voornamelijk gebruikt voor foutcontrole.
3. Extra draagvlag (AC): Deze vlag wordt op 1 gezet als een rekenkundige bewerking een overdracht oplevert van de onderste nibble (bits 3-0) naar de bovenste nibble (bits 7-4) van het resultaat. Het wordt voornamelijk gebruikt voor BCD-rekenkunde (Binary Coded Decimal). BCD-rekenkunde vereist een speciale behandeling van de overdracht tussen knabbels, en AC helpt bij dit proces.
4. Nulvlag (Z): Deze vlag wordt op 1 gezet als het resultaat van een bewerking nul is, en anders op 0. Het is erg handig voor voorwaardelijke vertakkingen; bijvoorbeeld controleren of twee waarden gelijk zijn.
5. Tekenvlag (S): Deze vlag weerspiegelt het teken van het resultaat van een operatie. Het wordt ingesteld op 1 als de MSB van het resultaat 1 is (wat een negatief getal aangeeft in de twee-complementweergave), en 0 als de MSB 0 is (wat een niet-negatief getal aangeeft). Het wordt gebruikt om het teken van een resultaat te controleren.
Samengevat: De 8085-vlaggen bieden cruciale informatie over de uitkomst van bewerkingen, waardoor voorwaardelijke uitvoering en foutafhandeling binnen het programma mogelijk zijn. Ze worden gecontroleerd met behulp van voorwaardelijke spronginstructies (zoals `JZ`, `JNZ`, `JC`, `JNC`, enz.) om de stroom van het programma te wijzigen op basis van de status van deze vlaggen. |