• Quit_prog cmp al,0
  • Out_char ga qongiroq qiling
  • Wait_key endp ; Wait_key
  • Out_char endp ; protsedura oxiri Out_char
  • Bajarilishi kerak bolgan vazifa
  • DIV, PUSH , POP , SHL , TEST
  • Nazorat savollari: TEST
  • DS ni bosing pop ES dan DS ni bosing pop ES Tavsiya etilgan oqish: 2,.3.
  • Ishlash vaqti
  • LOOP buyrugi yordamida siklni tashkil qilish (
  • Wait_key-ga qo'ng'iroq qiling




    Download 183,36 Kb.
    bet26/64
    Sana13.05.2024
    Hajmi183,36 Kb.
    #230077
    1   ...   22   23   24   25   26   27   28   29   ...   64
    Bog'liq
    Системное программирование, практика

    Wait_key-ga qo'ng'iroq qiling

    ; pastki dasturga qo'ng'iroq qiling


    cmp al, 27

    ; al dagi qiymatni 27 (ESC) kodi bilan solishtiring
    ;ha bo'lsa - keyin Quit_prog yorlig'iga


    Quit_prog


    cmp al,0

    ;kod kengaytirildimi? (F1-F12 va boshqalar)


    Boshlang

    ;ha - so'rovni takrorlaymiz ...


    Out_char ga qo'ng'iroq qiling

    ;bosilgan tugmani ekranda aks ettirish protsedurasini chaqiring


    jmp Boshlash

    yana kutamiz...


    Chiqish_prog:

    ;ESC bosilsa, dastur yetib keladigan yorliq


    mov al,32

    AL ga joylashtiring


    Out_char ga qo'ng'iroq qiling

    alda belgini chiqarish protsedurasini chaqiring


    int 20h

    ; chiqaylik...


    Wait_key proc

    ; foydalanuvchidan kalitni kutish tartibi


    harakat ah, 10h

    ; pastki dasturning oxiri


    int 16 soat

    ; DOS uzilishi


    ret

    ; DOS funktsiyasi "protsedurani tugatish"


    Wait_key endp

    ; Wait_key protsedurasining oxiri


    Out_char proc

    ; protsedura boshlanishi out_char


    cx-ni bosing

    ;pastki dastur tomonidan o'zgartiriladigan barcha registrlarni saqlang...


    boltani surish

    ;...keyinchalik chalkashlik bo'lmasligi uchun shunday qilamiz


    surish es

    ;segment registrini saqlang


    boltani surish

    ;Keling AX ni saqlaylik, chunki u bosilgan tugmaning kodini o'z ichiga oladi ...


    mov ax, 0B800h

    ; ESni video bufer segmentiga o'rnating


    harakat, bolta


    mov di,0

    ; DI - birinchi qatorning birinchi belgisi


    mov cx, 2000

    ; chiqish 2000 belgi (har bir satrda 80 belgi * 25 qator)


    pop bolta

    ; kalit kodini tiklang


    mov ah, 31

    ;ramz rangi


    Next_sym:

    ;loop uchun yorlig'i


    mov es:[di],ax

    ;kalit kodini va uning rangini kiriting (rang har doim 31)


    inc di

    ;ko'rsatkichni 2 ga oshiring (birinchi bayt - belgi, ikkinchi bayt - rang)


    inc di


    Next_sym tsikli

    ;keyingi belgini qayta ishlash


    pop es

    ;saqlangan registrlarni tiklang va stekni tekislang


    pop bolta


    pop cx


    ret

    ;protseduradan qaytish


    Out_char endp

    ; protsedura oxiri Out_char


    tugatish Boshlash

    ; dastur kodini tugatish belgisi

    Dastur quyidagilarni amalga oshiradi:
    - foydalanuvchidan kalitni kutadi;
    - agar u kengaytirilgan bo'lsa ASCII (F1-F12, o'qlar), keyin uni e'tiborsiz qoldiradi;
    - agar bu kengaytirilmagan bo'lsa ASCII (AZ, 0-9 va boshqalar) - ekranni ushbu belgi bilan to'ldiring;
    - agar biz ESC (27 yoki 1Bh) ni bossak, ekranni bo'sh joylar bilan to'ldiring (mov al,32) va chiqing.
    Bajarilishi kerak bo'lgan vazifa:
    1 CEMU 8086 emulyator muharriridan foydalanib , ushbu laboratoriya ishi misollarida manba matni berilgan dasturlarni yozing.
    2 * tipidagi bajariladigan fayllarni yarating. com .
    3 Olingan dasturlarning ishlashini o'rganish.
    4 DS registrining mazmunini aks ettirish dasturini yozing (2.1-misol asosida). Dasturingiz natijasini va tuzatuvchi nimani ko'rsatayotganini solishtiring.
    DIV, PUSH , POP , SHL , TEST buyruqlarining ishlashini tavsiflang .
    6 Stakka surilgan raqamlar qayerda ekanligini aniqlang (manzillarni toping va yozib oling).
    CS registrining mazmunini aks ettirish dasturini yozing (3.1-misol asosida).
    8 Muammolarni hal qilishning boshqa usullarini taklif qiling.
    Amalga oshirish tartibi:
    1. Nazariy materialni o‘rganish.
    2.Dastur tuzing.
    3. Hisobot tuzing.
    Nazorat savollari:

    1. TEST o'rniga SHL buyrug'idan foydalanishning afzalliklari (1.1-misol)?

    2. Jamoalar qanday farq qiladi?

    SHL dx , 1
    Va
    SHL dx, cl

    1. X ning tarkibini stekga qanday surish va uni qaytarib olish mumkin?

    2. O'nlik sanoq sistemasida bayt qiymatini ko'rsatish usulini aytib bering?

    3. O‘n oltilik sanoq sistemasida bayt qiymatini ko‘rsatish usulini aytib bering?

    4. X registrda yozilgan sonning ikkilik kodini chiqarish texnikasini tavsiflab bering

    5. Stak. Ish printsipi. Stack bilan ishlash buyruqlari.

    6. Tandem jamoalari ishidagi farqlarni ko'rsating

    DS ni bosing
    pop ES


    dan


    DS ni bosing
    pop ES
    Tavsiya etilgan o'qish: 2,.3.
    6- son LABORATORIYA ISHI
    Mavzu: Tsikllarning ishlashiga KIRISH
    Ishning maqsadi : mehnat ko'nikmalarini rivojlantirish dasturdagi tsikllarning tuzilishi va amalga oshirilishi bilan.
    Ishlash vaqti 2 soat
    Nazariy material
    Dasturning ma'lum bir qismini bir necha marta bajarishga imkon beruvchi tsikllar har qanday tilda eng keng tarqalgan konstruktsiyalardan biridir. MP 86 buyruqlar tizimida looplar birinchi navbatda loop buyrug'i yordamida amalga oshiriladi , garchi halqalarni tashkil qilishning boshqa usullari mavjud. Ko'pgina hollarda, tsikldagi qadamlar soni CX registrining mazmuni bilan belgilanadi , shuning uchun maksimal qadamlar soni 64 K ni tashkil qiladi.
    Yuqori darajali tillarda ham, assembler tilida ham tsiklik o'tishlarni tashkil qilish - bu bajariladigan dastur kodini sezilarli darajada kamaytirishga imkon beruvchi ajoyib vosita.
    Umuman olganda, har qanday sikl assemblerda shartli sakrash sifatida yoziladi.
    LOOP buyrug'i yordamida siklni tashkil qilish
    ( Birinchi usul ).
    Loop buyrug'i CX (hisoblagich) registrining mazmunini kamaytiradi va agar u 0 bo'lmasa, -128... + 127 bayt oralig'ida bir xil dastur segmentidagi ko'rsatilgan belgiga oldinga yoki orqaga o'tadi. Odatda yorliq sikl tanasining birinchi bandidan oldin joylashtiriladi va sikl buyrug'i tsikldagi oxirgi buyruqdir. CX registrining mazmuni ishorasiz butun son sifatida ko'rib chiqiladi, shuning uchun tsiklga kiritilgan ko'rsatmalar guruhining maksimal takrorlanish soni 65536 ni tashkil qiladi (agar tsiklga kirishdan oldin CX = 0 bo'lsa ). Buyruq protsessor bayroqlariga ta'sir qilmaydi.


    Download 183,36 Kb.
    1   ...   22   23   24   25   26   27   28   29   ...   64




    Download 183,36 Kb.