Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; **** CITANIE OBSAHU SUBORU DO PAMATI ****
- ;program otvori subor 'data.txt', kde su pripravene data. Precitaju sa zo
- ;suboru po znakoch az po koniec suboru a ulozia sa do pamati na adresu
- ; 'precitane'. Ukladanie citanych znakov sa vykona do staticky vyhradenej pameti.
- ; Ked bol precitany cely subor, vypise sa o tom hlasenie.
- ; otvorenie suboru nie je osetrene na moznu chybu (priznak Carry)
- ; pozor! sluzba 3dH otvara existujuci subor; 3cH vytvara novy subor
- ; nie je tu osetrene uzavretie suboru pomocou 3eH
- ;vsimnite si:
- ;- otvara sa vzdy textovy subor (obsahom su ascii znaky)!
- ;- v prilozenom subore data.inc je ulozena postupnost cislic a medzier. Ak by sme ju chceli interpretovat ako postupnost ciselnych hodnot oddelenych medzerou, musime tieto cisla "vyrobit" z uvedenej postupnosti ciselnych znakov. Potom ich mozeme v programe spracovavat ako cislo. Teda cisla mozeme nasobit, delit, a pod.
- ;- ako treba definovat subor na otvorenie! (cesta k nemu)
- ;- subor je identifikovany jeho handlerom (cislo)!
- ;- treba osetrit mozne stavy, ktore mozu nastat pri praci so
- ; suborom!
- ;- rezim citania suboru - po znakoch, po blokoch,po strankach...
- ;- existencia roznych sluzieb operacneho systemu pre pracu so
- ; suborom!
- ;- test na koniec suboru!
- ;- ako sa da zistit pocet precitanych znakov
- DATA SEGMENT
- subor db 'data.txt', 0 ; povodny subor
- subor2 db 'crdata.txt', 0 ; cryptovany subor
- precitane db 1 dup(?) ; tu sa bude ukladat citany subor
- chyba_subor db 10,13,'Nepodarilo sa otvorit subor$'
- result_subor db 10,13,'Subory sa podarilo otvorit$'
- chyba_citanie db 10,13,'Nepodarilo sa citat zo suboru$'
- chyba_pisanie db 10,13,'Nepodarilo sa zapisat do suboru$'
- result db 10,13,'Subor zakryptovany$'
- file_in dw 0
- file_out dw 0
- DATA ENDS
- CODE SEGMENT
- ASSUME CS:CODE, DS:DATA
- START: mov ax, seg data
- mov ds, ax
- ; ======= subor na citanie
- mov ah, 3dh ; otvor subor
- mov al, 0 ; na citanie
- mov dx, offset subor ; nazov suboru
- int 21h
- jc FILE_OPEN_ERROR ; skocime na vypis chyby
- mov file_in, ax ; do ulozime handle citania
- ; ======= subor na zapisovanie
- mov ah, 3dh ; otvor subor
- mov al, 1 ; na zapisovanie
- mov dx, offset subor2 ; nazov suboru
- int 21h
- jc FILE_OPEN_ERROR ; skocime na vypis chyby
- mov file_out, ax ; do ulozime handle zapisovania
- ; ======= subory su otvorene, zacneme citat a zapisovat
- mov ah, 09h
- mov dx, OFFSET result_subor
- int 21h
- mov dx, offset precitane ; bude sa ukladat do pameti
- mov cx, 1 ; po jednom znaku
- mov file_in, ax ; do ulozime handle citania
- citaj: mov ah, 3fh ; citaj subor
- int 21h
- inc dx
- cmp ax,0 ; bol EOF?
- jne citaj ; ak nie, citaj dalsi znak zo suboru
- ; mov dx, offset text ; kontrola precitaneho suboru
- ; mov ah,9
- ; int 21h
- ; mov ax,4c00h
- ; int 21h
- jmp CODE_END
- FILE_OPEN_ERROR:
- mov ah, 09h
- int 21h
- mov dx, OFFSET chyba_subor
- int 21h
- jmp CODE_END
- CODE_END:
- mov ax,4c00h
- int 21h
- CODE ENDS
- END START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement