Assembler proqramlaşdırma dili

Bayraqların göndərilməsi əmrləri

Bayraqların göndərilməsi əmrləri

LAHF əmri FLAGS registrinin kiçik baytının məzmununu AH registrinə köçürür. LAHF əmri icra olunduqdan sonra CF (köçürmə bayrağı), PF (cütlük bayrağı), AF (köməkçi keçid bayrağı), ZF (sıfır nəticə bayrağı) və SF (işarə bayrağı) bayraqlarının məzmunlarını uyğun olaraq AH registrinin 0, 2, 4, 6 və 7-ci bitlərinə yazır. Köçürmə zamanı qalan bitlərdən: 1-ciyə vahid, 3-cü və 5-ci bitlərə isə sıfır qiyməti köçürülür.

SAHF əmri isə LAHF əmrinin əksi olan əməliyyatı yerinə yetirir. Yəni, AH registrinin 0, 2, 4, 6, 7-ci bitlərini uyğun olaraq bayraqlar registrinin CF, PF, AF, ZF və SF bayraqlarına köçürür. Ehtiyat 1, 3 və 5 bayraqlarının qiymətləri dəyişməz qalır.

Növbəti əmrlər bayraqlar registrini stekdə saxlamağa, sözü və ikiqat sözü stekə yazmağa imkan verir.

PUSHF və POPF əmrləri uyğun olaraq bayraqlar registrinin məzmununu stekə və ya əksinə, stekdən registrə yazır. Bu əmrlərlə iş seqment atributlarının ölçüsündən asılıdır.

- USE 16 – stek 2 baytlıq FLAGS registrinin məzmununu yazır;

- USE 32 – stek 4 baytlıq EFLAGS registrinin məzmununu yazır.

PUSHFW (i80386) – söz uzunluğunda bayraqlar registrinin məzmununu stekə yazır. Həmişə USE 16 atributlu PUSHF əmr kimi işləyir.

PUSHFD (i80386) – seqment atributlarının ölçüsündən asılı olaraq FLAGS və ya EFLAGS bayraqlar registrinin məzmununu stekə yazır. PUSHF əmr kimi işləyir. Bu əmrlərdə EFLAGS bayraqlar registrinin məzmununu stekə köçürmə zamanı onun 16 və 17 bitləri köçürülmür, ancaq stekdə yerləşdirilmiş ikiqat sözdə uyğun bitlər sıfırlaşdırılır.

Analoji olaraq aşağıdakı üç əmr tamamilə yuxardakı əməliyyatların əksinə yerinə yetirir.

- POPF, POPFW (i80386), POPFD (i80386)