Assembler proqramlaşdırma dili

Bitlərin modifikasıyası və yoxlanması əmrləri

Bitlərin modifikasıyası və yoxlanması əmrləri

Bitlərin modifikasiyası və yoxlanması əmrlərinin köməyi ilə operandın konkret bir bitinə müraciət etmək olar. Operand 16 və ya 32 mərtəbəli yaddaş sahəsində və ya ümumi təyinatlı registrlərdə yerləşə bilər. Bitin vəziyyəti operandın kiçik bitinə nəzərən bit_sürüşməsi ilə verilir. Sürüşdürmənin qiyməti, bilavasitə, ədəd və həmçinin, ümumi təyinatlı registrlərin məzmunu kimi verilə bilər. Sürüşdürmənin qiyməti kimi BSR və BSF əmrlərinin işinin nəticəsindən istifadə etmək olar. Bütün əmrlərdə seçilmiş bitin qiyməti CF bayrağına mənsub etdirilir və eyni yazılış formatına malikdir:

ƏK operand, bitin_sürüşməsi

Burada ƏK(əmrin kodu) kimi BT (Bit Test –bitlərin yoxlanması, i80386), BTC (Bit Test and Convert - inversiya etməklə bitin yoxlanması , i80386), BTR (Bit Test and Reset – sıfır atmaqla bitin yoxlanması, i80386) və BTS (Bit Test and Set - yerinə 1 yazmaqla bitin yoxlanması, i80386) əmrlərindən biri yazıla bilər.

BT əmri ümumi şəkildə aşağıdakı kimi yazılır:

BT mənbə,indeks

BT əmri biti yoxlayır və bitin qiymətini CF bayrağına yazır. Bu əmrdən mənbədə konkret bitin qiymətini müəyyən etmək üçün istifadə olunur. Yoxlanılan bitin nömrəsi ikinci operandın məzmunu (0,...,31 qiymətlər diapazonunda olur) ilə verilir.

Misal:

a) BT AX, 5 ; 5-ci bitinin qiymətini yoxlayır

JNC m1 ; Əgər bit =0 isə keçid

BTC, BTR və BTS əmrlərinin də yazılış forması və sintaksis təsviri BT əmrinə analojidir.

BTS əmri bitin qiymətini CF bayrağına köçürür və sonra yoxlanan bitə 1 yazır. BTS əmrindən mənbədə konkret bitin qiymətini müəyyən etmək və onun yerinə 1 yazmaq üçün istifadə olunur. Yoxlanan bitin nömrəsi ikinci operandın məzmunu (0,...,31 qiymətlər diapazonunda olur) ilə verilir.

Misal:

a)
.386
MOV EBX ,0100110h         ; 0 bitin vəziyyətinin yoxlanması  
                             ; və onun yerinə 1 yazmaq
BTS  EBX , 0                ; CF=0, EBX=01001101h 
b)
MOV  AX,10
BTS    wrd,AX              ; wrd-nin 10-cu biti yoxlanır və 
                             ; onun yerinə 1 yazılır

BTR əmri bitin qiymətini CF bayrağına köçürür və sonra yoxlanan bitə 0 yazır.

BTC əmri bitin qiymətini CF bayrağına köçürür və sonra yoxlanan bitin qiymətini inversiya (dəyişdirir) edir