Assembler proqramlaşdırma dili

Müqayisə əməliyyatları

Müqayisə əməliyyatları

Müqayisə (münasibət) əməliyyatları “doğru” və ya ”yalan” qiymətlərini alır və əsasən məntiqi ifadələrin təşkilində istifadə olunur. “ doğru” məntiqi qiymət məntiqi vahidə, ”yalan” isə məntiqi sıfra uyğundur.

Münasibət əməliyyatlarının yazılış formatı:

İfadə_1 müqayisə əməliyyatı ifadə_2 
kimidir.

Aşağıdakı cədvəldə münasibət əməliyyatları gös­tərilmişdir.

Əməliyyatların nəticəsi yalan olarsa nəticə 0, əks halda isə nəticə 0FFFFH olur. Məsələn:

MOV AXK1 GE 15

Əgər K1 ədədi 15 - dən böyük və ya bərabərdirsə, onda translasiya zamanı bu əmr

MOV AX0FFFFh əmrinə, əks halda isə

MOV AX0 əmrinə çevriləcəkdir.

Müqayisə əməliyyatlarından çox vaxt müəyyən bir variantın seçilməsində istifadə edilir. Məsələn: K > 5 isə AX registrinə 10, əks halda 15 yükləmək lazım isə

MOV AX, ((K GT 5) AND 10) OR ((K LE 5)AND 15)

doğrudan da K > 5 isə

MOV AX, (0FFFFH AND 10) OR (0 AND 15)

olar və bu da nəticədə Mov Ax, 10 əmrinə çevrilər. Əks halda isə

MOV AX, (0FFFFH AND 15) OR (0 AND 10)

Olar. Bu da nəticədə MOV AX, 15 əmrinə çevrilər.

b) tab_size EQU 30 ; Cədvəlin ölçüsü …

MOV AL, tab_size GE 50    ; AL məntiqi sıfır və ya vahidin yüklənməsi
CMP  AL, 0                  ; Əgər  tab_size < 50, onda
JE  m1                         ;  ml keçid
...
ml: ... 

Misaldakı MOV əmrinin icra olunmasını nəzərdən keçirək. Əgər tab_size dəyişəninin qiyməti 50-dən böyük və ya bərabərdirsə, nəticədə AL registrnin məzmunu 0FFh-a, kiçik olduqda isə AL registrnin məzmunu 0h-a bərabər olacaqdır. Verilən misalda tab_size=30 olduğundan AL –ə 0h yazılır.