• TEST (Mantiqiy solishtirish)
  • Kompyuterni tashkillashtirish fanidan amaliy mashg‘ulot uchun ajratilgan




    Download 1,04 Mb.
    Pdf ko'rish
    bet7/8
    Sana16.05.2024
    Hajmi1,04 Mb.
    #238376
    1   2   3   4   5   6   7   8
    XOR (Logical Exclusive OR)
    buyrug‘i ikkita operandda mantiqiy (bit 
    bo‘yicha) EXCLUSIVE OR amalini bajaradi. Amaliyot natijasi birinchi operandni 
    almashtiradi; ikkinchi operand o‘zgarmaydi. Operandlarning tegishli bitlari har xil 
    bo‘lsa, har bir natija biti 1 ga o‘rnatiladi va operandlarning mos bitlari bir xil bo‘lsa, 
    0 ga o‘rnatiladi. XOR buyrug‘ining birinchi operandi registr (bir segmentdan 
    tashqari) yoki xotira katakchasi bo‘lishi mumkin, ikkinchi operand registr (bir 
    segmentdan tashqari), xotira katakchasi yoki tezkor qiymat bo‘lishi mumkin, lekin 
    bunga ruxsat berilmaydi. Ikkala operandni bir vaqtning o‘zida xotira sifatida 
    aniqlanadi. Operandlar bayt yoki so‘z bo‘lishi mumkin. Buyruqlar OF, SF, ZF, PF 
    va CF belgilanishlariga ta’sir qiladi, OF va CF belgilanishlari
     
    har doim tozalanadi, 
    qolgan flaglar esa natijaga qarab o‘rnatiladi. 
    XOR qoidalar: 
    Birinchi operand biti 0101 
    Natija biti 0110 
    Ikkinchi operand biti 0011 
    1-misol 
    mov AX,0Fh 
    mov AX,0FFFFh ;AX=FFF0h 
    2-misol 
    mov AX,00101001b 
    mov BX, 11110111b 
    xor ax, bx
    ; 11011110b 
    3-misol 
    mov SI, 0AAAAh 
    mov BX, 5555h 


    xor SI, BX
    ;SI=FFFFh, BX=5555h 
    4-misol 
    mov BX, BX
    ;BX qayta tiklanmoqda 
    TEST (Mantiqiy solishtirish) 
    buyrug‘i ikkita operandda mantiqiy 
    ko‘paytirish AND amalini bajaradi va natijaga qarab SF, ZF va PF belgilanishlarni 
    o‘rnatadi. OF va CF belgilanishlari o‘chiriladi va AF aniqlanmagan. Keyin shartli 
    o‘tish ko‘rsatmalari yordamida belgilanishlarning holatini tahlil qilish mumkin. 
    TEST ko‘rsatmasi hech qaysi operandni o‘zgartirmaydi. TEST buyrug‘ining 
    birinchi operandi registr (segmentdan tashqari) yoki xotira katakchasi bo‘lishi 
    mumkin, ikkinchi operand registr (segmentdan tashqari), xotira katakchasi yoki 
    tezkor qiymat bo‘lishi mumkin, lekin uni aniqlashga ruxsat berilmaydi. Ikkala 
    operand ham bir vaqtning o‘zida xotira sifatida operandlar bayt yoki so‘z bo‘lishi 
    mumkin va imzolangan yoki imzosiz raqamlarni ifodalaydi. 
    Bit bo‘yicha ko‘paytirish qoidalari: 
    Birinchi operand biti 0101 
    Natija biti 0 001 
    Ikkinchi operand biti 0011 
    SF bayrog‘i 1 o‘rnatiladi, agar buyruq bajarilishi belgi biti o‘rnatilgan 
    raqamga olib kelsa. ZF bayrog‘i 1 o‘rnatiladi, agar buyruq bajarilishi natijasida faqat 
    ikkilik nollardan iborat raqam paydo bo‘lsa. PF 1 o‘rnatiladi, agar buyruq bajarilishi 
    natijasida uning bitlarida juft sonli ikkilik raqamlar mavjud bo‘lsa. 
    1-misol 
    test AX, 1 
    jne label 2 : ;Agar AX-da 0 bit o‘rnatilgan bo‘lsa, o‘tish 
    je label 1 : ;Agar AX dagi 0 biti tozalangan bo‘lsa, o‘tish 
    Umumiy misol 
    .model tiny 
    ;ma’lumotlar va stek segmentlari birlashtirilgan 
    xotira modeli. 
    .code 
    ; ma’lumotlarni o‘z ichiga olgan kod segmenti. 
    org 100h 
    ; COM faylining boshlanishi 
    begin: 
    ; dastur kodini boshlash belgisi 


    mov СX, 
    ; CX ni son1 bilan o‘zlashtirish 
    mov BX,
    ; BX ni son2 bilan o‘zlashtirish 
    test cx, bx
    ; cx va bx qiymatlarini mantiqiy taqqoslash 
    jne label2 
    ; agar qiymatlardan biri 0 bo‘lmasa, label2 o‘tadi 
    je label1 
    ; agar qiymatlardan biri 0 bo‘lsa, label1 o‘tadi 
    ret 
    ; DOS funktsiyasi “dasturni tugatish” 
    label1:
    ; blokning boshlanishi teglari label1 
    mov ah,9 
    ; AH registriga DOS funksiyasining “chiqish 
    liniyasi (9)” raqamini joylashtirsh. 
    mov dx, offset string 
    ma’lumotlar segmentining boshlanishiga nisbatan 
    String yorlig‘ining ofsetini joylashtiradi 
    int 21h 
    ; DOS funktsiyasi “chiziq chiqish” 
    ret 
    ; DOS funktsiyasi “dasturni tugatish” 
    String db 'biri 0$' 
    ; chiqish ma’lumotlarini o‘z ichiga olgan c qator. 
    label2: 
    ; blokning boshlanishi label2 
    mov ah, 9 
    ; AH registriga DOS funksiyasining “chiqish 
    liniyasi (9)” raqamini joylashtiradi. 
    mov dx, offset string1 
    String1 ning ofsetini ma’lumotlar segmentining 
    boshidan DX registriga joylashtiradi 
    int 21h 
    ; DOS funktsiyasi “chiziq chiqishi” 
    ret 
    ; DOS funktsiyasi “dasturni tugatish” 
    string1 db '0$ ga emas' ; chiqish ma’lumotlarini o‘z ichiga olgan c qator. 
    end begin 
    ; dastur kodini tugatish belgisi 
    Ushbu misol ikkita qiymatni taqqoslaydi (6-qator), agar ikkita qiymatdan biri 
    nolga teng bo‘lsa, tegga o‘tib label 1 (satr (10)), keyin buyruqlar bajariladi, agar 
    ikkita qiymatdan biri nolga teng bo‘lsa, 2- yorlig‘iga o‘tadi. 
    2-misol 
    test SI,8 
    jne bityes
    ;SIda 3-bit oʻrnatilgan boʻlsa, oʻtish 
    je bitno
    ;Agar AX dagi 0 biti tozalansa, o‘tish 


    3-misol 
    test DX, 0FFFFh 
    jz null
    ;DX=0 bo‘lsa, sakrash 
    jnz smth
    ;Agar DX 0 boʻlmasa, oʻtish 

    Download 1,04 Mb.
    1   2   3   4   5   6   7   8




    Download 1,04 Mb.
    Pdf ko'rish

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Kompyuterni tashkillashtirish fanidan amaliy mashg‘ulot uchun ajratilgan

    Download 1,04 Mb.
    Pdf ko'rish