Assembler proqramlaşdırma dili

Ardıcıl fayllara yazma

Ardıcıl fayllara yazma

Fayla verilənləri daxil etmək üçün əvvəlcə onu açmaq lazımdır. Bilirik ki, faylı açmaq üçün 21h kəsilməsinin 3dh funksiyasından istifadə edilir. Bu zaman fayl göstəricisi faylın başlanğıcına gəlir. Fayla verilənlərin yazılması üçün 21h kəsilməsinin 40h funksiyasından istifadə edilir. Funksiyya müraciət etməzdən əvvəl BX registrinə faylın nömrəsi, CX registrinə yazılacaq verilənlərin baytlarla sayı və DX registrinə isə yazılan sətrin birinci işarəsinin ünvanı yazılır. 40h funksiyası BX registrinə 1 yüklənərsə, verilənləri STDOUT qurğusuna, əgər 2 yüklənərsə STDERR qurğusuna çıxaracaq.

…
file    DB ‘B:\FILE.TXT’,0
buffer DB ‘0123456789ABCDEF’
…
MOV   BX,handle       ; faylın nömrəsi
MOV   AH,40H           ;yazma funksiyası
MOV   CX,10            ; yazılacaq baytların sayı
LEA    DX, buffer       ; buferin ünvanı
INT 21h
      …

Bu proqram fraqmenti ‘0123456789’ sətrini 21H kəsilməsinin 3DH funksiyasının 1 və ya 2 müraciət metodu ilə əvvəlcədən açılmış FILE.TXT faylının başlanğıcına yazır. Faylın nömrəsi handle xanasına yazılıb. Əgər faylın uzunluğu 10 baytdan böyük olarsa, onda bu əməliyyatların icrasından sonra bu faylın yalnız birinci 10 baytı dəyişəcək.

40h funksiyası icra olduqdan sonra fayla yazılan işarələrin sayı AX registrinə yazılır. Funksiya müvəffəqiyyətlə icra olunubsa, köçürmə bayrağına sıfır (CF=0), əks halda isə vahid (CF=1) yazılır. Əgər funksiya icra olunduqdan sonra AXCX olarsa, onda daşıyıcıda verilənləri daxil etmək üçün yer çatmır. Əgər AX=CX isə deməli, funksiya müvəffəqiyyətlə icra olunub.