Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .model small
- .stack 100h
- .data
- help db 'Parasykite programa, kuri atlieka operacija AND dviems beveik bet kokio ilgio dvejetainiams skaiciams, esantiems failuose, ir isveda rezultata i trečia faila. Rytis Leviska, I pogrupis'
- ; duom.txt
- pirmasParametras db 255 dup ('$')
- ; duom2.txt
- antrasParametras db 255 dup ('$')
- ; rez.txt
- rezultatuFailas db 'rez.txt'
- ; -h arba /?
- treciasParametras db ?
- Skaicius1 db 11 dup ('$')
- Skaicius2 db 11 dup ('$')
- RezSkaicius db 10 dup ('$')
- pirmasZodis dw ?
- antrasZodis dw ?
- treciasZodis dw ?
- ketvirtasZodis dw ?
- penktasZodis dw ?
- nuskaitytaZodziu db 00h
- rodyklesPozicija db 00h
- fileHandler dw ?
- fileHandler2 dw ?
- enteris db 13, 10, '$'
- jauBuvoVienasParametras db 0
- .code
- mov ax, @data
- mov ds, ax
- mov cl, [es:0080h]
- mov bx, 0082h
- mov si, 0h
- cmp cl, 03h ; -h arba /?
- je PagalbosIsvediklis
- cmp cl, 12h ; maziau nei 'duom.txt duom2.txt'
- jl PagalbosIsvediklis
- ParametruSkaitymas:
- mov dl, [es:bx]
- cmp jauBuvoVienasParametras, 01h
- je AntroParametroCiklas
- cmp dl, ' '
- je Perejimas
- PirmoParametroCiklas:
- mov pirmasParametras[si], dl
- jmp CikloPersukimas
- AntroParametroCiklas:
- mov antrasParametras[si], dl
- jmp CikloPersukimas
- Perejimas:
- inc jauBuvoVienasParametras
- inc bx
- mov pirmasParametras[si], 0
- mov si, 0h
- dec cl
- jmp ParametruSkaitymas
- CikloPersukimas:
- dec cl
- cmp cl, 00h
- je ParametruSkaitymoPab
- inc bx
- inc si
- jmp ParametruSkaitymas
- PagalbosIsvediklis:
- mov ah, 09h
- mov dx, offset help
- int 21h
- jmp ProgramosPabaiga
- ParametruSkaitymoPab:
- mov antrasParametras[si], 0 ; padedam nuli antro parametro eilutes gale kad atidarant faila ax nemestu erroro
- mov ah, 09h
- mov dx, offset pirmasParametras
- int 21h
- mov ah, 09h
- mov dx, offset enteris
- int 21h
- mov ah, 09h
- mov dx, offset antrasParametras
- int 21h
- mov ah, 09h
- mov dx, offset enteris
- int 21h
- mov nuskaitytaZodziu, 00h ; kiek zodziu is abieju jau buvo nuskaityta
- mov ax, 3D00h ; failo atidarymas tik skaitymui
- mov dx, offset pirmasParametras
- int 21h
- mov fileHandler, ax
- mov ax, 3D00h ; failo atidarymas tik skaitymui
- mov dx, offset antrasParametras
- int 21h
- mov fileHandler2, ax
- FailuSkaitymas:
- mov cx, 0bh
- nunulinti:
- mov si, cx
- mov Skaicius1[si], '$'
- mov Skaicius2[si], '$'
- loop nunulinti
- PirmasFailas:
- mov bx, fileHandler
- mov ah, 42h
- mov al, 00h
- xor dx, dx
- mov cx, 0h
- mov dl, rodyklesPozicija
- int 21h
- mov bx, fileHandler
- mov cx, 0ah ; kiek baitu nuskaitysime
- mov ah, 3fh ; skaitome is failo
- mov dx, offset Skaicius1
- int 21h
- mov ah, 09h
- mov dx, offset enteris
- int 21h
- mov ah, 09h
- mov dx, offset Skaicius1
- int 21h
- AntrasFailas:
- mov bx, fileHandler2
- mov ah, 42h
- mov al, 00h
- xor dx, dx
- mov cx, 0h
- mov dl, rodyklesPozicija
- int 21h
- mov bx, fileHandler2
- mov cx, 0ah ; kiek baitu nuskaitysime
- mov ah, 3fh ; skaitome is failo
- mov dx, offset Skaicius2
- int 21h
- mov ah, 09h
- mov dx, offset enteris
- int 21h
- mov ah, 09h
- mov dx, offset Skaicius2
- int 21h
- add nuskaitytaZodziu, 05h
- add rodyklesPozicija, 0ah
- FailuSkaitymoSkaitliukas:
- cmp nuskaitytaZodziu, 80d
- je pabaiga
- jmp IssaugomeSkaiciu
- ;xor ax, ax
- ;mov al, nuskaitytaZodziu
- ;mov dl, 05h
- ;div dl
- ;cmp ah, 05h
- ;je IssaugomeSkaiciu
- jmp FailuSkaitymas
- mov cx, 0bh
- xor bx, bx
- xor dx, dx
- IssaugomeSkaiciu:
- mov si, cx
- mov dl, Skaicius1[si-1]
- mov bl, Skaicius2[si-1]
- sub dl, 30h
- sub bl, 30h
- and dx, bx
- push dx
- loop IssaugomeSkaiciu
- jmp FailuSkaitymas
- pabaiga:
- jmp RezultatuFailas
- RezultatuFailas:
- ;mov ax, 3D00h ; failo atidarymas tik skaitymui
- ;mov dx, offset pirmasParametras
- ;int 21h
- ;mov fileHandler, ax
- ProgramosPabaiga:
- mov ah, 04ch
- int 21h
- END
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement