;***************************************************************
;Pavyzdin programa. Parodo pirmj vartotojo vest simbol
;***************************************************************
.model small
.stack 100h
.data
ivesk db "Iveskite simboliu eilute: ", 10, 13, "$"
buferis db 255, ?, 255 dup (?)
rezult db "Pirmasis ivestas simbolis yra: $"
.code
pradzia:
MOV ax, @data ;reikalinga kiekvienos programos pradioj
MOV ds, ax ;reikalinga kiekvienos programos pradioj
;Ivedame ekran pirmj praneim
MOV ah, 9 ;9 - eiluts ivedimo funkcijos numeris
MOV dx, offset ivesk ; dx demdame ivedamos eiluts adres (poslink nuo segmento pradios)
INT 21h ;kvieiame pertraukim; po itos eiluts praneimas atsiranda ekrane
;Nuskaitome simboli eilut bufer
MOV ah, 0Ah ;0Ah - eiluts nuskaitymo funkcijos numeris
MOV dx, offset buferis
INT 21h
;Ivedame praneim "rezult"
MOV ah, 9
MOV dx, offset rezult
INT 21h
;Ivedame pirmj bufer nuskaitytos eiluts simbol
MOV bx, offset buferis ; bx raome buferio pradios adres
MOV dl, [bx+2] ; dl raome bait, kuris yra nutols per du baitus nuo buferio pradios - treij bait;
;pirmame buferio baite saugoma kiek simboli maksimaliai galima nuskaityti, o antrajame - kiek j nuskaityta
MOV ah, 2 ;2 - simbolio ivedimo ekran funkcijos numeris
INT 21h
MOV ah, 4Ch ;reikalinga kiekvienos programos pabaigoj
MOV al, 0 ;reikalinga kiekvienos programos pabaigoj
INT 21h ;reikalinga kiekvienos programos pabaigoj
END pradzia