• PUSH və POP əmləri PUSH və POP
  • PUSH mənbə POP qəbuledici
  • Dərs GİRİŞ Hesablama texnikası əsasən iki mühüm komponentin birgə fəaliyyətinə əsaslanır. Bunlar




    Download 1.61 Mb.
    Pdf ko'rish
    bet23/79
    Sana14.04.2022
    Hajmi1.61 Mb.
    #19706
    TuriDərs
    1   ...   19   20   21   22   23   24   25   26   ...   79
    Bog'liq
    SPT ƏS

    XCHG və BSWAP (i80486) əmrləri 
    XCHG əmri ilə operandların yerini dəyişdirmək olar və əmr ümumi şəkildə
    XCHG operand_1, operand_2 
    kimi yazılır. Əmr icra olunduqda operand_2-nin məzmunu ilə operand_1-in məzmunu yerini 
    dəyişdirlir. Operandların məzmunu bayt, söz və ya ikiqat söz ola bilər. XCHG əmri, seqment 
    registrləri müstəsna olmaqla, iki registr, registr və dəyişən (yaddaş xanası) üzərində əməliyyat 
    apara bilər. Məsələn: 
    1. XCHG AX, BX
    AX və BX registrlərin məzmunu dəyişdirilir. 
    2. XCHG AL, C
    C dəyişəninnin qiyməti ilə AL registrinin məzmunu dəyişdirilir. 
    3. XCHG AX, WORD PTR [ SI]
    AX registrinin məzmunu ilə SI registri ilə təyin olunmuş söz uzunluğunda yaddaş xanasının 
    məzmunu dəyişdirilir. 
    4. XCHG C2, AX
    AX registrinin məzmunu ilə söz uzunluqlu C2 dəyişəninin məzmunu dəyişdirilir. 
    5. XCHG EAX, EBX
    EBX registrinin məzmunu ilə EAX registrinin məzmunu dəyişdirilir. 
    BSWAP (i80486) əmri 32 bitlik registrdə baytlar sırasını çevirir. Əmr icra olunduqdan sonra 
    0-7 bitləri (kiçik sözün kiçik baytı) ilə 24-31 bitlərinin (böyük sözün böyük baytı), 8-15 bitləri


    31 
    ilə isə 16-23 bitlərinin yerini dəyişdirir. Ümumi şəkildə əmr aşağıdakı kimi yazılır: 
    BSWAP 32_mərtəbəli registr 
    Məsələn:
    MOV EAX, 12345678h 
    BSWAP EAX 
    Bu əmrlər icra olunduqdan sonraEAX-in məzmunu 78563412 kimi olacaq. 
    PUSH və POP əmləri 
    PUSH və POP əmləri stekə yazma və ya stekdən oxuma əməliyyatlarında istifadə edilir. Stek, 
    proqram verilənlərinin müvəqqəti saxlandığı yaddaş sahəsidir. Bu zaman SP registri ilə stekin 
    zirvəsinin ünvanı təyin edilir. Əmrlərin ümumi yazılışı aşağıdakı kimidir: 
    PUSH mənbə 
    POP qəbuledici 
    PUSH əmri ilə 1, 2, və ya 4 bayt uzunluqlu registrlərin məzmunu və ya yaddaş ünvanındakı 
    məzmunu stek yaddaşın zirvəsinə yazılır. Mənbə kimi ümumi təyinatlı registr, seqment registri, 
    bilavasitə operand (ədəd) və ya dəyişəni götürmək olar. Məsələn: 
    PUSH DS ; DS məzmununu stekin zirvəsinə yazılır. 
    PUSH K1 ; K1 ünvanındakı məlumat stekin
    ; zirvəsinə yazılır. 
    POP K1;stekin zirvəsindəki məlumat K1 yaddaşına yazılır. 
    POP DS ; stekin zirvəsindəki məlumatı ; DS registrinə yazılır. 
    Proqram verilənlərini müvəqqəti saxlamaq üçün üç registrdən: SS - stek seqmenti, ESP/SP- 
    stek göstəricisi və EBP/BP –stek baza göstəricisi registrlərindən istifadə olunur. Stekin ölçüsü 
    mikroprosessorun iş rejimindən asılı olaraq 64 kb (və ya mühafizə rejimində 4 qb) qədər ola bilər. 
    İstənilən anda yalnız bir stekə müraciət etmək olar ki, onun da ünvanı SS stek seqment registrində 
    yerləşdirilir. Bu cari stek adlanır. Başqa stekə müraciət etmək üçün SS stek seqment registrinə 
    tələb olunan stekin ünvanını yükləmək lazımdır. Mikroprosessor steklə işləyən bütün əmrləri icra 
    edərkən avtomatik olaraq SS stek seqment registrindən istifadə edir. 
    Steklə işləmənin daha bir neçə xüsusiyyətini qeyd edək: 

    verilənləri stekə yazma və oxuma əməliyyatı LIFO (Last In First Out-“axırıncı gəldi 
    birinci getdi”) prinsipinə uyğun olaraq yerinə yetirilir; 

    Stekə yazma zamanı stek mümkün maksimal ünvandan kiçik ünvana doğru (yəni, 
    “aşağıdan artma”) artır; 

    ESP/SP və EBP/BP registlərindən yaddaşı ünvanlaşdırmaq üçün istifadə etdikdə, 
    Assembler avtomatik olaraq onların məzmunundakı qiyməti SS stek seqment registrindəki ünvana 
    nəzərən sürüşmə ünvanı olduğunu qəbul edir. 
    Ümumi şəkildə stekin təşkilinin strukturunu aşağıdakı kimi göstərmək olar: 
     
    Əməli yaddaş 
    0000:0000 
    Kod seqmenti
    Verilənlər seqmenti 
    Stek seqmenti 
    SS:SP 
    Stekin zirvəsi
    Stekin artma 
    istiqaməti
    SS:FFFF 
    Stekin dibi
    ƏY-nin böyük ünvanı 


    32 
    SS, ESP/SP və EBP/BP registrlərindən kompleks istifadə olunmasına baxmayaraq, onların hər 
    birinin ayrıca təyinatı var. Registrlərin hansının ünvanlaşdırma üçün istifadə olunması,
    seqmentləşdirmədə SEGMENT direktivinin
    USE16 və USE32 modifikasıyasından asılıdır. 
    ESP/SP registrləri həmişə stekin zirvəsinin ünvanını göstərir. Başqa sözlə, stekə sonuncu daxil 
    edilən elementin sürüşməsi bu registr ilə təyin edilir. Əgər stek boşdursa, ESP registrlərinin 
    qiyməti seqmentin axırıncı baytının ünvanına bərabər olacaqdır. 
    Stekin başlanğıcı yaddaşın böyük ünvanında yerləşir. Şəkildə bu ünvan SS:FFFF cütlüyü ilə 
    işarə olunub. Burada FFFF sürüşməsi şərti daxil edilib. Onun real qiymətini isə proqramlaşdırıcı 
    öz proqramında, stek seqmentinin təsvirində verir. SS:FFFF ünvan cütlüyünün qiyməti real 
    rejimdə maksimal ölçüsü 64 Kbayt (0FFFFh) olan stek seqmentinin başlanğıcı kimi götürülür. 
    PUSH əmrinin işləmə alqoritmində (aşağıdakı şəklə bax) aşağıdakı xüsusiyyətləri nəzərə almaq 
    lazımdır: 
    1. 16 mərtəbəli stek seqmenti üçün SP –nin qiyməti 2 vahid ((SP)=(SP) –2) və ya 32 mərtəbəli 
    stek seqmenti üçün SP –nin qiyməti 4 vahid ((SP)=(SP) –4) azalır; 
    2. Mənbədəki
    qiymət SS:SP və ya SS:ESP cütlüyü ilə göstərilən ünvandan yazılır. 
    Əməli yaddaş 
    Əməli yaddaş 
    0000:0000 
    0000:0000 
    Stek seqmenti
    Stek seqmenti 
    SS:SP 
    Mənbənin 
    məzmunu 
    SS:SP 
    Stekin zirvəsi 
    Stekin köhnə 
    zirvəsi 
    SS:FFFF 
    Stekin dibi 
    SS:FFFF 
    Stekin dibi 
    PUSH mənbə 
    əmrinə qədər
    ƏY-nin böyük 
    ünvanı 
    PUSH mənbə 
    əmrindən 
    sonra ƏY-nin 
    böyük ünvanı 
    Faktiki olaraq PUSH əmri ESP registrinin
    qiymətini mənbənin baytla ölçüsü (1, 2 və ya 4) 
    qədər azaldır və mənbənin məzmunu yaddaşın SS:(ESP) ünvanına köçürür. 
    POP  əmri stekin zirvəsində yerləşmiş baytı, sözü və ya ikiqat sözü qəbuledicidə yerləşdirir və 
    ESP registrinin
    qiymətini, uyğun olaraq 1, 2 və ya 4 vahid artırır. Qəbuledici kimi ümumi təyinatlı 
    registrlər, seqment registləri (CS müstəsnə olmaqla) və ya dəyişən götürülə bilər. 
    POP  əmrinin işləmə alqoritmi PUSH əmrinin işləmə alqoritminin əksinədir: 
    1. Stekin zirvəsinin məzmununu qəbulediciyə yazır; 
    2. 16 mərtəbəli stek seqmenti üçün SP –nin qiymətini 2 vahid ((SP)=(SP) +2) və ya 32 
    mərtəbəli stek seqmenti üçün SP –nin qiymətini 4 vahid ((SP)=(SP) +4) artırır. 
    Qeyd edək ki, PUSH və POP əmrlər cütlüyündən həmişə birlikdə istifadə olunur. Məsələn: 
    PUSH DS ; DS registrinin məzmununu
    ; stekin zirvəsinə yazılır 
    PUSH A ; A yaddaş xanasının məzmununu
    ; stekin zirvəsinə yazılır 
    POP A ; stekin zirvəsindəki verilən götürülərək 
    ; A yaddaş  xanasına yazılır 
     

    Download 1.61 Mb.
    1   ...   19   20   21   22   23   24   25   26   ...   79




    Download 1.61 Mb.
    Pdf ko'rish

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Dərs GİRİŞ Hesablama texnikası əsasən iki mühüm komponentin birgə fəaliyyətinə əsaslanır. Bunlar

    Download 1.61 Mb.
    Pdf ko'rish