1-mavzu: Kirish uslubmetdiReja


Download 1.97 Mb.
bet17/39
Sana05.01.2023
Hajmi1.97 Mb.
#1078956
1   ...   13   14   15   16   17   18   19   20   ...   39
Bog'liq
Paradigma maruzalar

cmp mantiqiy_shart
jxx u_holda ;xxning o’rniga kerakli taqqoslash qisqartmalari yoziladi
;;aks holda tarmog’ining dastur kodi
jmp cmp_oxiri
u_holda:
;; u holda tarmog’ining dastur kodi
cmp_oxiri:


2-misol. EAX registrni 20 dan katta yoki teng ekanligini tekshiramiz. EAXdagi qiymatga ishorali son sifatida qaraymiz. C++ tilidagi dagi ko’rinishi:
if (EAX>=20) EBX=100; else EBX=200;
Assemblerda esa:

  1. cmp eax,20

  2. jge u_holda

  3. mov ebx,200

  4. jmp davom

  5. u_holda:

  6. mov ebx, 100

  7. davom:



2. Assembler tilida takrorlanuvchi jarayonlar uchun dasturlash
Dasturlashning asosiy tushunchalaridan yana biri takrorlanish tushunchasidir. Bu tushuncha ingliz tilida loop, cycle va iteration deb, rus tilida esa цикл deb ataladi. Agar ma’lum bir buyruqlar ketma-ketligining bajarilishi ko’p marta takrorlanishi kerak bo’lsa, undan foydalaniladi. Takrorlanish qandaydir bir shart bajarilmaguncha yoki talab qilingan marta qadar takrorlanmaguncha qaytalanaveradi.
C++ kabi yuqori darajali tillarda while...,do...while yoki for ... kabi boshqaruvni ifodalari berilgan. Assemblerda esa buning uchun oddiy tarmoqlanish buyruqlaridan foydalaniladi.
Masalan, ekranga 10 marta “Salom” so’zini chop etmoqchi bo’lsangiz, 10 marta chop_et makrosini yozmasdan, uning o’rniga bir marta yozib buni takrorlanish halqasi ichiga olinadi. Takrorlanish necha marta amalga oshirilganligini sanab turish uchun qo’shimcha o’zgaruvchidan foydalanishga to’g’ri keladi. Bu ecx registri bo’la qolsin. C++ dagi ko’rinishi:
ecx = 0;
while (ecx != 10)
{
cout<<“Salom”;
ecx++;
}
Assemblerdagi ko’rinishi:
mov ecx,0
halqa_boshi:
cmp ecx,10
je halqa_oxir

Download 1.97 Mb.

Do'stlaringiz bilan baham:
1   ...   13   14   15   16   17   18   19   20   ...   39




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling