Assembler proqramlaşdırma dili

Giriş-sıxış portundan sətr elementlərinin daxil edilməsi

Giriş-sıxış portundan sətr elementlərinin daxil edilməsi

Sətr elementlərini giriş-sıxış portundan daxil etmək üçün INS (INput Strinq -sətri daxil etmə, i 80386) əmrindən istifadə olunur. Əmrin yazılışı aşağıdakı kimidir:

INS qəbuledicinin_ünvanı, portun_nömrəsi

Bu əmr nömrəsi DX registrində yerləşdirilən portdan elementi, ünvanı qəbuledicinin_ünvanı operandı ilə təyin olunan sətrə daxil edir. Sətrin ünvanı aşkar şəkildə ES:EDI/DI registrlər cütlüyündə təyin olunmalıdır. Sətr elementlərinin ölçüsüportun ölçüsünə üyğun olmalıdır. Bu isə sətr elementlərinin yerləşdirilməsi üçün yaddaşın ayrılması təmin edən ehtiyat yaddaşın ayrılması direktivlərinin köməyi ilə təyin olunur.

INS əmrinin icrasından sonra DF bayrağının vəziyyətinə uyğun olaraq EDI/DI registrinin qiyməti artırılır (inkrement) və ya azaldılır (dekrement). Translyator operandlı INS əmrini elementin ölçüsünə uyğun olaraq operadsız üç maşın əmrlərindən birinə çevirir:

INSB (INput Strinq Bute -portdan baytın sətrə daxil edilməsi);

INSW (INPut Strinq word- portdan sözün sətrə daxil edilməsi);

INSD ( Input strinq Double word - ikiqat sözün sətrə daxil edilməsi).

İndi isə 5000h nömrəli portdan 10 dənə baytın yaddaşın pole sahəsinə köçürülməsinin proqram fraqmentinə baxaq:

. DATA
Pole  DB  10  DUP("  ")
. Code
      ...
 PUSH  DS
 POP     ES
 MOV   DX , 5000h
 LEA    DI , pole
 MOV   CX , 10
 REP     INSB