Assembler tilida dasturlash asoslari
Ro'yxatdan o'tish manzili
Download 139.18 Kb.
|
Assembler tilida dasturlash
- Bu sahifa navigatsiya:
- . Bilvosita manzillash
- . Masshtablash bilan bilvosita adreslash
- Indekslash bilan bazaviy manzillash
- Soglom: • Registrlarni saqlash ● "Registrlarsiz" yonaltirish ● Elementlarga kirish, BP. • MUHIM
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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling