back_rest
ex mod coder
- Член од
- 19 јули 2006
- Мислења
- 1.590
- Поени од реакции
- 107
Повели,
Програмата ја изработив и тестирав со Emu8086. Прашај слободно ако има нешто нејасно :wink:Код: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
Mene me zanima (fakin kirilica)
interrupt 21h? na kratko?
Da ne e nekoi od onie veke isprogramiranite vo Emu8086?