Assembler proqramlaşdırma dili

Sətrdən elementin giriş çıxış portuna çıxarılması

Sətrdən elementin giriş çıxış portuna çıxarılması

Bu əməliyyat sətrdən elementləri giriş-çıxış portuna çıxarır. Sətrdən elementləri giriş-çıxış portuna çıxarmaq üçün OUTS(Output string-sətrdən elementi giriş - çıxış portuna çıxarmaq) əmrindən istifadə olunur və aşağıdakı kimi göstərilir:

OUTS portun - nömrəsi, qəbuledicinin - ünvanı

Portun nömrəsi DX registrində olmalıdır. Sətr elementinin ünvanı isə qəbuledicinin - ünvanı operandına görə tə"yin olunur. Sətrin ünvanının qiyməti aşkar şəkildə DS: ESI/SI registrlər cütlüyündə göstərilə bilər. Sətr elementlərinin ölçüsü portun ölçüsünə uyğunlaşmalıdır. O ehtiyat yaddaşın ayrılması drektivi ilə tə"yin olunur ki, bunun köməyi ilə sətr elementləri üçün yaddaş sahəsi ayırılır. OUTS əmrinin icrasından sonra DF bayrağının vəzyyətinə uyğun olaraq ESI/SI registrinin qiyməti artırılıb (inkrement) və ya azaldılır (dekrement). Translyator Outs əmrini elementin ölçüsünə uyğun olaraq aşağıdakı üç operandsız əmrlərdən birinə çevirir:

OUTSB (Output String Byte- bayt sətrini giriş-çıxış portuna çıxarmaq);

OUTSW (Output String Word) –söz sətrini giriş-çıxış portuna çıxarmaq);

OUTSD (Output String Double Word –ikiqat sözü giriş-çıxış portuna çıxarmaq).

Misal. Simvollar ardıcıllığını (LPT1) printerinə uyğun olan 378h nömrəli porta çıxaran proqram fraqmentinə baxaq:

      .DATA 
      String  DB    "çapa çıxarılacaq sətr "
      .Code
            ...
      MOV  DX,  378h
      LEA    Dİ,   String
      MOV  CX,  21
REP  OUTSB
          ...

Qeyd: Nəticə kimi onu qeyd edək ki, ünvan mərtəbəsinin USE16 və ya USE32 olmasından asılı olaraq mikro­prosessor bu qrup əmrləri uyğun olaraq 64 kbayt və ya 4 qbayt blok elementləri üzərində əməliyyat apara bilir. Bu bloklar məntiqi olaraq istənilən qiymətli elementlər ardıcıllığı olub, yaddaşda ikilik kod şəklində saxlanılır. Blokun elementlərinin ölçüləri 8, 16 və ya 32 bitlərlə məhdudlaşır. Mikroprosessor sətr - qəbuledicini ES registri ilə ünvanlaşdırılan əlavə seqmentdə, sətr_mənbə isə DS registri ilə ünvanlaşdırılan verlənlər seqmentində yerləşdiyini qəbul edir.

Mikroprosessor sətr_qəbuledicini EDI/DI registri, sətr_mənbəni isə ESI/SI registri ilə ünvanlaşdırır. Sətr_qəbuledicini sətr_mənbədən fərqli olaraq yenidən təyin etmək olar. İstifadə olunan sətr əmrlərindən asılı olaraq onlar EDI/DI və ESI/SI registrlərinin qiymətləri DF istiqamət bayrağının qiymətindən asılı olaraq avtomatik olaraq artıb və ya azalır. DF bayrağının qiyməti isə CLD və STD əmrləri ilə idarə olunur.