org 0100h
mov si, 0080h
xor bx, bx
mov bl, byte ptr [si]
inc si
mov byte ptr [si+bx], 00h
cmp byte ptr [si], 00h
jne otvori_datoteka
mov ah, 09h
mov dx, offset nema_datoteka
int 21h
ret
otvori_datoteka:
mov ax, 3d00h
mov dx, si
int 21h
jnc izbroj_zborovi
mov ah, 09h
mov dx, offset greska_otvoranje
int 21h
ret
izbroj_zborovi:
mov word ptr [datoteka], ax
procitaj_znak:
mov ah, 3fh
mov bx, word ptr [datoteka]
mov cx, 0001h
mov dx, offset procitan_znak
int 21h
cmp ax, 00h
je kraj
mov al, byte ptr [procitan_znak]
cmp al, 20h
je najden_razdeluvac
cmp al, 0ch
je najden_razdeluvac
cmp al, 0ah
je najden_razdeluvac
cmp al, 09h
je najden_razdeluvac
cmp al, 00h
je najden_razdeluvac
mov byte ptr [vo_zbor], 01h
jmp procitaj_znak
najden_razdeluvac:
cmp byte ptr [vo_zbor], 01h
jne procitaj_znak
inc byte ptr [izbroeni_zborovi]
mov byte ptr [vo_zbor], 00h
jmp procitaj_znak
kraj:
cmp byte ptr [vo_zbor], 01
jne zatvori_datoteka
inc word ptr [izbroeni_zborovi]
zatvori_datoteka:
mov ah, 3eh
mov bx, word ptr [datoteka]
int 21h
mov di, offset broj_na_zborovi
add di, 00004h
mov ax, word ptr [izbroeni_zborovi]
cmp ax, 0000h
je prikazi_br_zborovi
mov cx, 000ah
pretvori_vo_dec:
xor dx, dx
div cx
add dl, 30h
mov byte ptr [di], dl
dec di
cmp ax, 0000h
jne pretvori_vo_dec
prikazi_br_zborovi:
mov ah, 09h
mov dx, offset vkupno_zborovi
int 21h
ret
nema_datoteka db "[greska] nemate vneseno ime na datotekata!", "$"
greska_otvoranje db "[greska] neuspesno otvoranje na datotekata", "$"
vkupno_zborovi db "broj na zborovi : "
broj_na_zborovi db "00000"
db "$"
datoteka dw ?
procitan_znak db 00h
vo_zbor db 00h
izbroeni_zborovi dw 0000h