Advertisement
montas

Untitled

Oct 19th, 2010
647
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
BibTeX 3.26 KB | None | 0 0
  1. ;    ****  CITANIE OBSAHU SUBORU DO PAMATI  ****
  2.  
  3. ;program otvori subor 'data.txt', kde su pripravene data. Precitaju sa zo
  4. ;suboru po znakoch az po koniec suboru a ulozia sa do pamati na adresu
  5. ; 'precitane'. Ukladanie citanych znakov sa vykona do staticky vyhradenej pameti.
  6. ; Ked bol precitany cely subor, vypise sa o tom hlasenie.
  7. ; otvorenie suboru nie je osetrene na moznu chybu (priznak Carry)
  8. ; pozor! sluzba 3dH otvara existujuci subor; 3cH vytvara novy subor
  9. ; nie je tu osetrene uzavretie suboru pomocou 3eH
  10.  
  11. ;vsimnite si:
  12. ;- otvara sa vzdy textovy subor (obsahom su ascii znaky)!
  13. ;-  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.
  14. ;- ako treba definovat subor na otvorenie! (cesta k nemu)
  15. ;- subor je identifikovany jeho handlerom (cislo)!
  16. ;- treba osetrit mozne stavy, ktore mozu nastat pri praci so  
  17. ;  suborom!
  18. ;- rezim citania suboru - po znakoch, po blokoch,po strankach...
  19. ;- existencia roznych sluzieb operacneho systemu pre pracu so
  20. ;   suborom!
  21. ;- test na koniec suboru!
  22. ;- ako  sa da zistit pocet precitanych znakov
  23.  
  24.  
  25. DATA SEGMENT
  26. subor             db 'data.txt', 0        ; povodny subor
  27. subor2            db 'crdata.txt', 0     ; cryptovany subor
  28. precitane           db  1 dup(?)           ; tu sa bude ukladat citany subor
  29. chyba_subor         db 10,13,'Nepodarilo sa otvorit subor$'
  30. result_subor        db 10,13,'Subory sa podarilo otvorit$'
  31. chyba_citanie       db 10,13,'Nepodarilo sa citat zo suboru$'
  32. chyba_pisanie       db 10,13,'Nepodarilo sa zapisat do suboru$'
  33. result              db 10,13,'Subor zakryptovany$'
  34. file_in             dw 0
  35. file_out            dw 0
  36. DATA ENDS
  37.  
  38. CODE    SEGMENT
  39.     ASSUME  CS:CODE, DS:DATA
  40.  
  41. START:    mov ax, seg data
  42.     mov ds, ax
  43.  
  44. ; ======= subor na citanie
  45.     mov ah, 3dh              ; otvor subor
  46.     mov al, 0                ; na citanie
  47.     mov dx, offset subor     ; nazov suboru
  48.     int 21h
  49.     jc  FILE_OPEN_ERROR      ; skocime na vypis chyby
  50.     mov file_in, ax          ; do ulozime handle citania
  51.  
  52. ; ======= subor na zapisovanie
  53.     mov ah, 3dh              ; otvor subor
  54.     mov al, 1                ; na zapisovanie
  55.     mov dx, offset subor2    ; nazov suboru
  56.     int 21h
  57.     jc  FILE_OPEN_ERROR      ; skocime na vypis chyby
  58.     mov file_out, ax         ; do ulozime handle zapisovania
  59.  
  60. ; ======= subory su otvorene, zacneme citat a zapisovat
  61.     mov ah, 09h
  62.     mov dx, OFFSET result_subor
  63.     int 21h
  64.    
  65.     mov dx, offset precitane ; bude sa ukladat do pameti
  66.     mov cx, 1                ; po jednom znaku
  67.     mov file_in, ax          ; do ulozime handle citania
  68.  
  69.    
  70. citaj:  mov ah, 3fh              ; citaj subor
  71.     int 21h
  72.     inc dx
  73.           cmp ax,0                 ; bol EOF?
  74.     jne citaj           ; ak nie, citaj dalsi znak zo suboru
  75.  
  76.  
  77. ;          mov dx, offset text     ; kontrola precitaneho suboru
  78. ;   mov ah,9
  79. ;          int 21h
  80. ;   mov ax,4c00h
  81. ;   int 21h
  82.     jmp CODE_END
  83.  
  84. FILE_OPEN_ERROR:
  85.     mov ah, 09h
  86.     int 21h
  87.     mov dx, OFFSET chyba_subor
  88.     int 21h
  89.     jmp CODE_END
  90.  
  91. CODE_END:
  92.     mov ax,4c00h
  93.     int 21h
  94.  
  95. CODE    ENDS
  96.     END START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement