O’ZBEKISTON RESPUBLIKASI AXBOROT TEXNOLOGIYALARI VA
KOMMUNIKATSIYALARINI RIVOJLANTIRISH VAZIRLIGI
MUHAMMAD AL-XORAZMIY NOMIDAGI
TOSHKENT AXBOROT TEXNOLOGIYALARI UNIVERSITETI
Kafedra Kompyuter tizimlari
Fan Kompyuterni tashkil etish
AMALIY ISH No3
Mavzu: Assembler tilida asosiy operatorlar bilan ishlash.
Guruh: 210-19
Bajardi: Po`latov S.
Tekshirdi: Jamolov X.
Toshkent – 2021
3-AMALIY ISH
Assembler tilida asosiy operatorlar bilan ishlash.
Yuqori sath tillari hisoblangan C, C++ va Java kabi dasturlash tillarida yozilgan bitta
operatorni amalga oshirish uchun, bir nechta mashina buyruqlarini bajarish kerak
bo’ladi. Har bir operatorga bittadan mashina buyrug’i to’g’ri keladigan til esa assembler
tili deb ataladi. Har bir assembler tili, yoki assemblerlar, mashina buyruqlarining nomlari
qisqartirib yozilgan mnemonikalarga, ya’ni ma’noga ega qisqartirilgan so’zlarga
asoslanadi. Masalan: qo’shish – ADD, ayirish – SUB, ko’chirib yozish – MOV, bir qiymatga
orttirish – INC, ko’paytirish – MUL, bo’lish – DIV va boshqa mashina buyruqlari kabi.
Assembler tilida ham konstantalarni, o’zgaruvchilarni, xotira adreslarini ifodalovchi
metkalarni tavsiflash uchun simvollardan iborat nomlar qo’llaniladi.
Dasturlarni yozishda barcha sonlar o’n oltilik sanoq sistemasida ifodalanadi.
Dasturdagi buyruqlar bir, ikki yoki uch baytli bo’lib, mos holda xotiraning bitta, ikkita
yoki uchta yacheykasini egallashlari mumkin.
Assembler tilida ishlash oson emas. Biron bir dasturni 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 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 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 BIOS ning 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.
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.
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’lumotlargao’tish amalga oshiriladi, ya’ni asosiy xotiraning buyruqlar va ma’lumotlar saqlanadigan
joyiga (adresiga) murojaat qilish mumkin bo’ladi. Agar operatorga ham metka
qo’yiladigan bo’lsa, u qatorning boshlanishida yoziladi.
Topshiriq.
Variant No26: Quyidagi keltirilgan ifoda uchun assembler tilida dastur tuzing:
10-variant Sarvar
a(c+1) + 2b
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
var a,b,c:Integer;
begin
read (a,b,c);
asm
mov eax,1
add eax,c
mov ebx,a
mul ebx
mov a,eax
mov eax,2
mul b
mov b,eax
add eax,a
mov a,eax
end;
Writeln(a);
{ TODO -oUser -cConsole Main : Insert code here }
end.
Natija:
Natija markaziy protsessor (CPU) da qanday ifodalanishini ko’rish uchun quyidagi
ketma-ketlikni amalga oshiramiz:
View -> Debug Windows -> CPU
Natijada, agar dastur to’g’ri tuzilgan bo’lsa, quyidagi oyna ochiladi:
Do'stlaringiz bilan baham: |