• NAZARIY QISM Assemblerda quyidagi umumiy maqsadli registrlar keng foydalaniladi.
  • ISHNI BAJARISH TARTIBI 1. Assembler tilida dasturlash uchun qutidagi dasturlar kerak bo’ladi: MASM_v9.0 yoki MASM_v10.0 dasturi
  • 4. Assembler tilida turli o’zgaruvchilar tipi mavjud: belgili va belgisiz formatdagi tiplar
  • Nazariy topshiriqlar
  • 4-laboratoriya mashg’uloti Assembler tilida oddiy dasturlarni yozish va bajarish




    Download 57,88 Kb.
    Pdf ko'rish
    Sana16.12.2023
    Hajmi57,88 Kb.
    #120687
    Bog'liq
    3-4 mashg\'ulot



    4-laboratoriya mashg’uloti 
     
    Assembler tilida
     
    oddiy dasturlarni yozish va bajarish. 
     
    Ishdan maqsan: Assembler tilidagi buyruqlar bilan tanishish va
    oddiy dasturlarni 
    yozishni o’rganish. 
    NAZARIY QISM 
    Assemblerda quyidagi umumiy maqsadli registrlar keng foydalaniladi. 
    1) AX registri. AX registri tallagichdir. U xamma kiritish va chiqarish 
    operatsiyalari va ba’zi satrlarni ustidagi operatsiyalar uchun ishlatiladi. Masalan, 
    ko’paytirish va bo’lish, siljish komandalar AX registrni ishlatishadi. Ba’zi 
    buyruqlar, agar AX registrga murojat qilishsa, samaraliroq kodiga ega bo’ladilar: 
    AX: ! AH ! AL ! 
    2) BX registri. BX registri tayanch (baza) registridir. Bu birgina, “indeks” sifatida 
    kengaytirilgan adreslashtirish uchun umumiy maqsadli registridir. 
    BX: ! BH ! BL ! 
    3) CX registri. CX registri schetchikdir. U siklarni qaytarilishini boshqarish, 
    chapga va unga siljish operatsiyalari uchun ishlatiladi. CX registri xisoblash uchun 
    xam ishlatiladi. 
    ; dan so’ng izohlarni yozish mumkin 
    mov qayerga , qayerdan – bu joylashtirish buyrug’i 
    mul _d – bu ex registrni _d ga ko’paytirish buyrug’i 
    natija ax ga joylashadi 
    shl edx,16 – 16 razryadga surish buyrug’i 
    div cx - ax ni cx ga bo’lish buyrug’i. natija ax ga joylashadi 
    pop ecx - bu buyruq stekdan qiymatni oladi 
    sub ecx,eax – bu buyruq ecx dan eax ni ayiradi. Natija ecx ga joylashadi 
    ISHNI BAJARISH TARTIBI 
    1. Assembler tilida dasturlash uchun qutidagi dasturlar kerak bo’ladi: 
     MASM_v9.0 yoki MASM_v10.0 dasturi 
    natijalarni ko’rish uchun: OLLYDBG.EXE 
     
    2. MASM dasturi o’rnatilgan joyda aaa.bat nomli fayl yaratiladi 


    Faylga bunday nom berishdan maqsad uning barcha fayllardan yuqorida 
    joylashishi va oson topilishini ta’minlash. Aaa.bat faylga quyidagi axborot 
    kiritiladi. 
    ml /c /coff "work.asm" 
    link /SUBSYSTEM:CONSOLE "work.obj" 
    work.asm – bu kompilyatsiyalanadigan dastur nomi. Ushbu ma’lumot kiritilgach 
    va uni saqlab dasturlashga kirishish mumkin 
    3. Assembler quyidagilarga ega : 
    - protsessor tipini aniqlash direktivasi,
    - dastur boshlanish belgisi,
    - dastur tanasi,
    - dastur yakuni belgisi 
    4. Assembler tilida turli o’zgaruvchilar tipi mavjud: belgili va belgisiz 
    formatdagi tiplar Shortlnt (signed char), Byte (unsigned char), Integer (int), Word 
    (unsigned int) va boshqalar. 
    5. Quyidagi ifodani hisoblash dasturini yozsaka – e/b – de, bu yerda: 
    a = 5; 
    b = 27; 
    c = 86; 
    е = 1986; 
    d = 1112; 
    aaa.bat: work.asm joylashgan yerga uni saqlaymiz,. Agar biz boshqa dasturni 
    kompilyatsiya qilmoqchi bo’lsak unda aaa.bat ichida yozilgan work fayl nomini 
    boshqasiga almashtirish kerak bo’ladi. Uni saqlash talab etiladi. Agar dastur 
    sintaktik xatolarsiz bo’lsa unda exe kengaytmali fayl hosil bo’lishi kerak 
    6. dastur: 
    .686 ; protsessor tipini aniqlash direktivasi 
    .model flat, stdcall ; chiziqli xotira modelini e’lon qilish 
    Option case map:none ; Windows OT bilin moslashtirish 
    .data ; ma’lumotlarni aniqlash direktivasi 
    _a dw 5 ; 16-razryadli xotira omboriga _a nom bilan 5 sonini yozish 


    _b dw 27 ; yozish _b = 16h 
    _c dw 86 ; yozish _c = 56h 
    _e dw 1986 ; yozish _e = 7c2h 
    _d dw 1112 ; yozish _d = 458 
    res dw 0 ; res o’zgaruvchisini saqlash uchun xotirani zaxiralash 
    .code ; buyruqlar segmenti boshlanishi direktivasi 
    start: 
    mov edx,0 ; registrlarni tozalash 
    mov ebx,0 
    mov ecx,0 
    mov 
    ах, _e ; ax registriga _e = 7c2h sonini joylashtiramiz 
    mul _d ; _e ni _d ga ko’paytiramiz 
    SHL edx, 16 ; 16 ga ko’chirishni amalga oshiramiz 
    mov dx,ax 
    push edx ; qiymatni stekka tashlaymiz 
    mov edx,0 
    mov 
    ах, _e 
    mov cx, _b 
    div cx ; ax ni cx ga bo’lamiz 
    pop ecx ; stekdan qiymatni olamiz 
    sub ecx, eax ; ayiramiz 
    mov 
    ах, _a
    sub eax, ecx
    mov res, eax 
    ret ; OT boshqaruviga qaytaramiz 
    end start ; start nomli dasturni yakunlash 
    Nazariy topshiriqlar: 
    1. Qanday buyruqlarni bilib oldingiz? 
    2. Registr va ularni vazifalarini tushuntiring? 
    3.Foydalanuvchi registerlarga qaysi registrlar kiradi?
    4. Segment registrlari va ularning vazifalarini tushuntiring? 

    Document Outline

    • ISHNI BAJARISH TARTIBI

    Download 57,88 Kb.




    Download 57,88 Kb.
    Pdf ko'rish

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    4-laboratoriya mashg’uloti Assembler tilida oddiy dasturlarni yozish va bajarish

    Download 57,88 Kb.
    Pdf ko'rish