) Assemblerning ma’lumotlarga ishlov berish operatorlari

1.
Arifmetik operatorlar
2.
Mantiqiy operatorlar
3.
Ma’lumotlarni uzatish operatorlar
4.
Bayroq-maydonlarni
boshqarish operatorlar
5.
Siljitish operatorlar
6.
Zanjir(qator) ustida operatorlar
Quyida shu operator turlariga batafsil to’xtab o’tamiz va ularning dasturda yozilish sintaksis
misollari bilan tanishib chiqamiz.
Arifmetik operatorlar.
Mikroprotsessorning arifmetik buyruqlari ikkilik va o’nlik (ikkilik
ko’rinishida kodlangan) sinf buyruqlarga bo’linadi. Ikkinchi ko’rinishidagi
sinf buyruqlari
kamdan-kam ishlatiladi chunki ular hotira hajmini ko’p egallaydi.
Barcha arifmetik buyruqlar ishorali va ishorasiz bo’lishi mumkin. Ishorali buyruqlar manfiy va
musbat sonllar ustida bajarilishi mumkin bo’lsa, ishorasiz buyruqlar esa faqat musbat sonlar
ustida.
Assembler tilining arifmetik buyruqlarni to’rtda guruhga bo’lishni lozim topdik:
1.
Qo’shish
operatorlari
2.
Ayirish operatorlari
3.
Ko’paytirish operatorlari
4.
Bo’lish operatorlari
Shu guruh operatorlarini ko’rib chiqamiz.
Qo’shish operatorlari:
ADD (qushish) ikkita operand (so’z yoki bayt) yig’indisini hisoblaydi. Amal natijasi birinchi
operand o’rniga yoziladi.
Misollar:
ADD AX, BX ; AX-registrga BX-registrni qo’shish
ADD AX, Mem ; AX-registrga Mem-o’zgaruvchini qo’shish
ADD Mem, AX ; Mem-o’zgaruvchiga AX-registrni qo’shish
ADD AL, 40 ; AL-registrga 40-o’nlik konstantani qo’shish
ADD AL, 4Ah ; AL-registrga 4A-o’n oltilik konstantani qo’shish
ADD AL, 101010b ; AL-registrga 101010-ikkilik konstantani qo’shish
ADD AL, 44o ; AL-registrga 44-sakkizlik konstantani qo’shish
Ushbu buyruqda ikkita o’zgaruvchi qiymatlarini va birinchi bo’lib konstanta ko’rsatish
ta’qiqlanadi, ya’ni xatoga olib keladi.
ADD A, B
ADD 10, AL
INC (inkrement) operand qiymatini birga oshiradi
.
INC АХ ; AХ+1
Ayirish operatorlari:
1. SUB (ayirish) birinchi operanddan ikkinchi operand qiymatini ayiradi (operandlar bayt yoki
so’z bo’lishi mumkin). Amal natijasi birinchi operand o’rniga yoziladi.
Misollar:
SUB AX, CX ; AX−CX → natijasi AX
SUB AX, Mem ; AX−Mem → natijasi AX
SUB Mem, AX ; Mem−AX →
natijasi Mem
SUB AL, 10 ; AL−10 → natijasi AL
Ushbu buyruqda ham ikkita o’zgaruvchi qiymatlarini va birinchi bo’lib konstanta ko’rsatish
ta’qiqlanadi.
DЕC (dekrement) operand qiymatini birga kamaytiradi.
Masalan:
DEC CХ ; CХ−1
NEG (ishora belgisini almashtirish) nol’ qiymatidan operand qiymatini ayiradi
. Natijasi operand
o’rniga yoziladi.
Masalan:
NEG АХ ; −(АХ) → АХ
СМР (ikkita operandlarni solishtirish)
birinchi operanddan ikkinchi operand qiymatini ayiradi,
SUB amalidan farqi shundaki u operand qiymatlarini o’zgartirmaydi
natijasini bayroq-
registrlarga o’rnatadi
Misollar:
СМР АH, ВL ; (АХ)−(ВХ)
CMP Mem, AX ; (Mem)−(AH)
CMP AL, 10 ; (AL)−10
Ko’paytirish operatorlari:
1.
MUL (ko’paytirish)
ikkita ishorasiz sonlarni (so’z yoki bayt) ko’paytirish amalini bajaradi. Bu
buyruqda faqat bitta sonli operand ko’rsatiladi qaysiga ko’paytirish lozim. Bu operand registr
yoki operativ hotiradagi o’zgaruvchi bo’lishi mumkin. Ikkinchi ko’paytiriluvchi operand AL
registr qiymati (agar bayt amallari bo’lsa) yoki AX registr (so’zlarda). 16-bitli(bayt) ko’paytirish
natijasi AH(katta bayt) va AL(kichik bayt) registrlarda saqlanadi. 32-bitli(so’z) ko’paytirish
natijasi esa DX (katta so’z) va AX (kichik so’z) registrlarda saqlanadi.
Misollar:
MUL BX ; ishorasiz BXni AXga ko’paytirish
MUL Mem ; ishorasiz Mem o’zgaruvchini AXga ko’paytirish
MUL DL ; ishorasiz DLni ALga ko’paytirish
Bo’lish operatorlari:
1. DIV (bo’lish) ishorasiz ikkita sonni bo’lish amalini bajaradi. Bu buyruqda faqat bitta operand
(registr yoki operativ hotiradagi o’zgaruvchi) ko’rsatiladi qaysi bo’linuvchini aniqlaydi.
Bo’luvchi esa ikkilik o’lchamda berilishini inobatga olish lozim, ya’ni AH va AL registrlarda
agar bytli bo’lish
amali bajarilsa, 32-bitli bo’lish amalida DX va AX registrlarida.
Natijasi esa quyidagicha qayd qilinadi:
agar 16-bitli bo’lish bo’lsa butun qismi AL registrda, qoldigi esa AH registrda;
agar 32-bitli bo’lish bo’lsa butun qismi AX registrda, qoldigi esa DX registrda.