17-mavzu: assembler dasturlash tili va uning imkoniyatlari. Reja



Yüklə 0,56 Mb.
səhifə2/4
tarix28.03.2023
ölçüsü0,56 Mb.
#103403
1   2   3   4
17-mavzu. assembler

OSOO

3.4

LDA buyrug'ining mashina kodi.

0801

00

Adresning kichik bayti

0802

OB

Adresning katta bayti

0803

2F

CMA buyrug'ining mashina kodi.

0804

32

STA buyrug'ining mashina kodi.

0805

01

Adresning kichik bayti

0806

OB

Adresning katta bayti

0807

CF

RST1 buyrug'ining mashina kodi.



Ad res

Mashina kodi

Metka Mnemokod

Izoh

0800

44 000B

LIU, 0B00

Sonni olibyozish

am

2F

CMA

Sonni inkorlash

0804

32 010B

STA, 0B01

0B01 adresi bo'yicha yozish

080'

CF

RST1

Dasturni toxtatish



17.4-rasm. Dasturni bitta qatorda, bitta buyruq keltirilgan ko‘rinishda yozilgan holati.


Assembler tilida ishlash oson emas. Biron bir dastumi assembler tilida yozish, o‘sha dasturni C, C+ va Java kabi dasturlash tillarida yozishga nisbatan ko‘p vaqt talab qiladi. Assemlerda dasturni to‘g‘ri ishlaydigan holatga keltirish ham (rus tilida - отладка программы) juda ko‘p vaqt talab qiladi. Shunday ekan assemblerda dasturlash nima uchun kerak - degan savol paydo bo‘ladi. Bunga asos qilib quyidagi ikki sababni ko‘rsatish mumkin: assembler tilida tuzilgan dasturlar unumdorligining yuqori bo‘lishi (rus tilida - высокая производительность программ) va ularda kompyuterning apparat vositalariga to‘g‘ridan-to‘g‘ri murojaat qila olish imkonining borligi. Yuqori malakaga ega bo‘lgan dasturchi, assembler tilida, yuqori sath tilida tuzilgan dasturga nisbatan, ancha kam xotira egallaydigan va anchagina tez ishlaydigan dasturlarni tuzishi mumkin. Ko‘p hollarda, yozilgan dasturning kamroq xotirani egallashi va tez bajarila olishi mumkinligi juda muhim ahamiyat kasb etadi. Hozirda ko‘pgina o‘rnatiladigan amaliy dasturlar, masalan - smart-kartalardagi va uyali telefonlardagi dasturlar, har-xil qurilmalarning drayverlari va BIOSning muolajalari (rus tilida - процедуры) ana shunday dasturlar sirasiga kiradi.
Assembler tilini o‘rganish bilan biz, kompyuterning qanday ishlashini va uning ichki tuzilishi, ya’ni arxitekturasi qanday ekanligini mukammal o ‘rganish imkoniyatiga ega bo‘lamiz.

  1. Assembler tilida operatorlarning formatlari va ularni qo‘llash

Assembler tilida operator - unga mos mashina buyrug‘ining tuzilishini o‘zida ifodalaydi. Ammo turli xil kompyuterlar uchun ishlab chiqilgan assembler tillari, ko‘p jihatlari bilan o‘zaro o‘xshash bo‘lganliklari sababli, assembler tili haqida umumlashtirib ham gapirish mumkin. 4.5, 4.6 va 4.7-keltirilgan misollarda, Pentium 4, Motorola 680x0 va UltraSPARC protsessorlari asosida qurilgan kompyuterlar uchun assembler tilida yozilgan dasturlarning bo‘laklari keltirilgan. Barcha dasturlar N = I + J formulani hisoblashni amalga oshiradi. Barcha misollarda bo‘sh qatorgacha bo‘lgan operatorlar hisoblashlarni bajaradilar, bo‘sh qatordan pastda joylashgan operatorlar esa I, J va N o‘zgaruvchilar yozish uchun modjallangan xotirani ajratib qo‘yishni amalga oshiradilar.
Assembler operatorlari to‘rtta qismdan iborat yozuvlar qatori ko‘rinishida bo‘ladi: metkalar, amallar, operandalar va izohlar. Metkalar asosiy xotira adreslarini simvollarda ifodalangan nomlari sifatida ishlatiladi. Ular yordamida buyruqlar va ma’lumotlarga o‘tish amalga oshirladi, ya’ni asosiy xotiraning buyruqlar va ma’lumotlar saqlandigan joyiga (adresiga) murojaat qilish mumkin bo‘ladi. Agar operatorga ham metka qo‘yiladigan bo‘lsa, u qatorning boshlanishida yoziladi. Keltirilgan misollarning mohiyatini, ulardan birinchisi asosida ko‘rib chiqamiz. Ushbu va keyingi misollarda ham, birinchi qatorda yozilgan FORMULA, I, J va N lar - metkalar hisoblanadi. Keyingi qatorda buyruqlar - MOV, ADD va direktivalar - DD joylashgan. Uchinchi qatorda protsessorning ichki registrlari va o‘zgaruvchilarning nomlari, to‘rtinchi qatorda esa izohlar keltirilgan. Ko‘rilayotgan birinchi misolda Pentium 4 protsessorining asosiy ichki registri hisoblangan EAX registridan foydalanilgan. Bunda avval I o‘zgaruvchini EAX registriga yozib olish buyrug‘i - MOV EAX, I, keyin esa EAX registri qiymatiga J o‘zgaruvchini qo‘shish buyrug‘i - ADD EAX, J va EAX registrida hosil bo‘lgan natija N ning qiymatini xotiraga qaytib yozish buyruqlari - MOV N, EAX lar keltirilgan. Oxirigi uchta qatorda I, J va N lar uchun asosiy xotiradan 32-razryadli so‘z uzunligidagi joylar ajratish direktivalari keltirilgan. Direktiva deganda - assemblerning o‘zi uchun modjallangan buyruqlar tushuniladi. Quyidagi 4.1-jadvalda Pentium 4 protsessori assembleri deriktivalarining ba’zilari keltirilgan.

17.1-jadval. Pentium 4 protsessori assembleri deriktivalari.



Motorola 680x0 va UltraSPARC protsessorlari uchun yozilgan dasturlar Pentium 4 protsessori uchun yozilgan dasturdan, ulardagi belgilar va nomlarning bir oz farq qilishi bilan ajralib turadilar. Masalan Motorola
680x0 protsessorlarida ichki registlar D0, D1, D2 deb, UltraSPARC protsessorlarida esa %R1, %R2 deb belgilangan. Ko‘chirib yozish buyruqlari esa - MOVE, LD, ST qisqartmalar kabi belgilangan.



Yüklə 0,56 Mb.

Dostları ilə paylaş:
1   2   3   4




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©www.genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə
Psixologiya