Inversiya, bu ikkilik sondagi barcha nullarni birga almashtirish, barcha birlarni-nullar bilan almashtirish. Masalan, ikkilik son 1100 0011 inversiyalash operatsiyasidan so‘ng 0011 1100 ko‘rinishga ega bo‘ladi.
Inkrementatsiyalash-invesiyalangan ikkilik sonning oxirgi razryadiga birni qo‘shish. Masalan, inkrementirlangan ikkilik son 0011 1100, 0011 1101 ko‘rinishga ega bo‘ladi.
Ayirish operatsiyasi misolini ko‘rib chiqamiz. 7 dan 3 olish kerak bo‘lsin. 7 soni ikkilik kodda-0000 0111, 3 soni ikkilik kodda-0000 0011. 3 soniga qo‘shimcha kodni topamiz, buning uchun, uni inversiyalaymiz va 1111 1100 olamiz, so‘ng inkrementatsiyalaymiz va 1111 1101 olamiz. Ikkilik koddagi 7 ga qo‘shimcha ikkilik koddagi 3 qo‘shamiz, shunda quyidagini olamiz
0000 0011
+ 1111 1101
=1 0000 0100
Ayirish operatsiyalarida ifodadagi razryadlarni to‘lib ketishi natija uchun hisobga olinmaydi, shuning uchun javob 0000 0100 =4 to‘g‘ri hisoblanadi.
MP ko‘paytirish va bo‘lish, xotira qurilmasiga joylashtirilgan (tikilgan), dasturiy algoritm bo‘yicha bajariladi. Ko‘paytirish algoritmi qo‘shish va surish operatsiyalaridan ketma-ket foydalanishni, bo‘lish algoritmi esa, ayirish operatsiyasidan (yoki qo‘shimcha kod bilan jamlashdan) ketma-ket foydalanishni nazarda tutadi.
Mikroprotsessorlarni elementar dasturlash, haqida tushuncha
MP barcha komandalari, adreslari va ma’lumotlari ikkilik son bilan kodlanadi. Masalan, 8-razryadli protsessorda, komandalar va ma’lumotlar 8-razryadli ikkilik sonlar, adreslar esa 16-razryadlik ikkilik sonlar. MP uchun har qanday dastur o‘z ichiga ikkilik sonlar kombinatsiyasini ketma-ketlikda yozilgan bajarishini oladi. Protsessorlarning har bir turi uchun komanda va adreslarni o‘zining shifrlash tizimi mavjud, shuning uchun mashinaga mo‘ljallangan dasturlash tillari (faqat ikkilik simvollardan foydalanib) noyob hisoblanadi, va boshqa turdagi protsessorlar uchun
qo‘llab bo‘lmaydi.146
Mashina kodidagi dastur nafaqat ma’lum ketma-ketlikdagi komandalar to‘plami, balki xotira yacheykalariga havola qilish hamdir, u yerda ma’lumotlar saqlanadi va komandalar bajarilgandan so‘nggi natijalarini qayerga yo‘naltirilishi kerak. Mashinaga mo‘ljallangan dasturlash tillari avtokodlar deb nomlanadi.
INTEL 8080 MP avtokoddan foydalanib ikkita sonni qo‘shish misolini ko‘rib chiqamiz. Bu protsessor uchun, «Zagruzit» (“yuklash”) komandasi 10101101,
«Slojit» (“qo‘shish”) komandasi-00111100, «Zapisat v pamyat» (“xotiraga yozish”) komandasi-10001101, «Prekratit rabotu» (“ishni to‘xtatish”) komandasi-00000000 kodga ega. Faraz qilamiz, qo‘shiladigan sonlar 102 va 203 raqamli xotira yacheykalariga joylashtirilgan, qo‘shish natijalarini esa 101 yacheykaga kiritish zarur. 20-jadvalda ikkita sonni qo‘shish dasturining ko‘rinishi keltirilgan. Avtokoddan foydalanib yozilgan dastur, qo‘pol ifodalanishi sababli, nol va
146 Chris J. Georgopoulos Interface fundamenentals in Microprocessor-Controlled Systems. A member of the Kluwer academic publishers group. Greece, 2009. 203-205 p.
birlardan tashkil topgan, past darajadagi ko‘rgazmalikga ega, chunki ularning ma’lum komanda va adreslari uchun kombinatsiyalarni yodda saqlash qiyin.
20-jadval
Ikkilangan kod
operatsiyasi
|
Adres va xotira
|
Harakatni bajaruvchi
xarakter
|
1010 1101
|
0110 0110 0000 0000
|
Aychiykaning 102 birinchi muddatli
yuklamasi
|
0011 1100
|
1100 1011 0000 0000
|
Aychiykaning 203 saqlangan sekundiga
birinchi muddatini qo'shish
|
1000 1101
|
0110 0101 0000 0000
|
Aychiykaning 101 summasini yozish
|
0000 0000
|
|
Ishni tugatish
|
MP dasturlarining ko‘rgazmalikligini yaxshilash uchun, 16 lik tizimda komanda va adreslarni kodlashdan tez-tez foydalaniladi. Masalan, oldin ko‘rib chiqilgan ikkita sonni qo‘shilish dasturi, 16-lik hisoblash tizimida 21- jadvalda keltirilgan quyidagi ko‘rinishga ega bo‘ladi.
21-jadval147
O’n oltilik kod
operatsiaysi
|
Xotirasidagi
manzil
|
Harakatni bajaruvchi
xarakter
|
AD
|
11 00
|
Aychiykaning 102
birinchi muddatli yuklamasi
|
6D
|
GB 00
|
Aychiykaning 203 saqlangan sekundiga birinchi muddatini qo'shish
|
8D
|
65 00
|
Aychiykaning 101
summasini yozish
|
00
|
|
Ishni tugatish
|
147 Chris J. Georgopoulos Interface fundamenentals in Microprocessor-Controlled Systems. A member of the Kluwer academic publishers group. Greece, 2009.
lik tizimda kodlash, dasturni yozish uchun ketadigan vaqtni qisqartirish imkonini beradi, kod va adreslarni oson identifikatsiya qilinadi, xatolarni topish osonlashadi, bu dasturlash jarayonini yengillashtiradi.
Dasturning hajmini (uzunligi) oshishi bilan adres ro‘yxati va operatsiyalar kodini yodda saqlab qolish murakkablashadi. Ushbu muammoni yechish uchun, past darajadagi maxsus dasturlash tili ishlab chiqilgan-assembler.
Assemblerda yozilgan dastur operatori (qatori) metkalar (belgilar), mnemokod
(movhum kod), operand va komentariyadan (sharxlardan) tashkil topadi.
|