Assembler tilida dasturlash asoslari


Ro'yxatdan o'tish manzili


Download 139.18 Kb.
bet5/6
Sana18.06.2023
Hajmi139.18 Kb.
#1584346
1   2   3   4   5   6
Bog'liq
Assembler tilida dasturlash

Ro'yxatdan o'tish manzili - operandlar har qanday umumiy maqsadli registrlarda yoki segment registrlarida joylashgan
mov bx, ax
mov es, ax
2. To'g'ridan-to'g'ri manzillash
mov ax, 2
add ax, 2
3. To'g'ridan-to'g'ri adreslash - agar xotirada joylashgan operandning manzili ma'lum bo'lsa
mov ax,es:0001
mov ax, es:word_var
Ikkinchi holda, assemblerning o'zi word_var so'zini mos keladigan manzil bilan almashtiradi
4. Bilvosita manzillash - operandning xotiradagi manzilini to'g'ridan-to'g'ri ko'rsatish mumkin emas, lekin istalgan registrda saqlanadimov ax, [bx]
5. Shift yordamida asosiy manzillash - oldingi ikki adreslash usullarining kombinatsiyasimov
ax, [bx+2]
mov ax, [bp]+2

6. Masshtablash bilan bilvosita adreslash


mov ax,[esi*2]+2 - bu adreslash usuli avvalgisiga toʻliq oʻxshaydi, bundan tashqari undan soʻzlar massivining elementini, qoʻsh soʻzlarni yoki toʻrtlik soʻzlarni oddiygina element raqamini registr koʻpaytuvchisiga joylashtirish orqali oʻqish uchun foydalanish mumkin, 1 ga teng boʻlishi mumkin, 2, 4 yoki 8 - elementlar massivining o'lchamiga mos keladi - mos ravishda bayt, so'z, qo'sh so'z, to'rtta so'z
7. Indekslash bilan bazaviy manzillash - Ushbu adreslash usulida operandning xotira ofseti ikkita registrdagi raqamlar yig'indisi va agar ko'rsatilgan bo'lsa, ofset sifatida hisoblanadi.
Quyidagi barcha buyruqlar bir xil yozishning turli shakllaridir harakatlar:
mov ax,[bx+si+2]
mov ax,[bx][si]+2
mov ax,[bx+2][si]
mov ax,[bx][si+2]
mov ax,2[bx][si]
8. Indekslash va masshtablash bilan bazaviy manzillash eng to'liq mumkin bo'lgan manzillash sxemasi bo'lib, avvalroq alohida holatlar sifatida muhokama qilingan barcha holatlarni o'z ichiga oladi.
mov eax, ds:[eax+ebx*2+2]
Manzillash
• To'g'ridan-to'g'ri (manzil to'g'ridan-to'g'ri o'rnatilgan)
MOV al,varl
MOV al,[varl]
MOV al,[varrayB+1]
MOV al,[arrayD+4]
• Bilvosita
MOV al,[esi]
INC BYTE PTR [esi]
Shartsiz sakrash va aylanish
JMP метка_перехода (o'tish yorlig'i)
- shartsiz sakrash
LOOP метка_перехода (o'tish yorlig'i)
– ECX/CX birga kamayadi
– agar ECX/CX nol emas, keyin yorliq bo'yicha sakrab o'ting
– aks holda keyingi buyruq
LOOPD har doim ECX
LOOPW har doim CX



Manzil usullariSegmentlarni yarating va exe fayllarini yarating


O'quv kutubxonasi



Stek
• Stek tushunchasi
– LIFO (Last-In, FIst-Out
• Stek xotirasini manzillash
SS ESP
– kichikroq manzillar tomon "o'sish"
• PUSH/POP r/m16|r/m32|imm32|imm16
• PUSHFD/POPFD – 32 bitli bayroqlar
• PUHSF/POPF – 16 bitli bayroqlar
•PUSHAD/POPAD – 32 bitli registrlar
EAX,ECX,EBX,ESP,EBP,ESI,EDI
•PUHSA/POPA - 16 bitli registrlar
AX, CX, BX, SP, BP, SI, DI
Stack, foydalanish
Sog'lom:
Registrlarni saqlash
Sog'lom:
Registrlarni saqlash
● "Registrlarsiz" yo'naltirish
● Elementlarga kirish, BP.
MUHIM:
• PUSH va POP operatsiyalari balansi
● Chegara nazorati
● Topshirish shartnomalari
Jarayonlarning ta'rifi
• PROC va ENDP

Hujjatlar
Maqsadli harakatlar
Kutilgan variantlar
Natijani qaytarish
Kerakli shartlar
• CALL va RET

– qaytish manzili – stekda
– CALL
(manzilni surish va borish)
- RET (bosilgan manzilda bo'lish)
Jarayonlardan foydalanish
• Ichki qo'ng'iroqlar
Mahalliy L1: va global L2: teglar
• Parametrlarni registrlar orqali o'tkazish
• Registrlarni saqlash va tiklash
PROC USES reg1 reg2 …
• Funktsional dekompozitsiya
-Murakkab harakatlarni oddiyroqlarga ajratish
-Oddiy amallarni oflayn tekshirish
- bog'lanishlarni aniqlash va ularning "kuchini" baholash
- "strukturalash" va kodlashni ajratish
PROC va ENDP direktivalari
Push ax; stekga kiritish 3-parametr
Push bx; 2-parametrni stekga surish
Push cx; 1-parametrni stekga surish
Call addup: protsedura chaqiruvi
Add cp, 6: stekga surilgan parametrlarni o'chirish
Addup proc near; yaqin aloqa uchun qaytish manzili
2 baytni egallaydi
Push bp; asosiy ko'rsatkichni yana 2 bayt ushlab turish, shuning uchun parametrlar 4-baytdan boshlanadi
Mov bp, sp; stekni asosiy ko'rsatgichga yuklash
Mov ax,[bp+4]; 1-parametrni olish
Add ax,[bp+6] ; 2-parametrni olish
Add ax,[bp+8] ; 3-parametrni olish
Pop bp; poydevorni tiklash
Ret;qaytish
Addup endp

Download 139.18 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




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