Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;7. Paraðykite programà, kuri visus faile rastus skaitmenis pakeistø þodþiais („1“ -> „vienas“,...)
- ;ir rezultatà iðsaugotø kitame faile.
- .model small
- .386
- .stack 100h
- .data
- DuomenuFailas db "duom.txt", 0
- RezultatuFailas db "rez.txt", 0
- SkaitBuf db 10 dup ('$')
- RasBuf db 100 dup ('$')
- DeskDuom dw ?
- DeskRez dw ?
- Char dw ?
- ;Skaiciai
- nulis db "nulis$"
- vienas db "vienas$"
- du db "du$"
- trys db "trys$"
- keturi db "keturi$"
- penki db "penki$"
- sesi db "sesi$"
- septyni db "septyni$"
- astuoni db "astuoni$"
- devyni db "devyni$"
- ;Errors
- ErrorOpenReadM db "Atidarant duomenu faila ivyko klaida$"
- ErrorOpenWriteM db "Atidarant duomenu faila ivyko klaida$"
- ErrorReadM db "Skaitant duomenis ivyko klaida$"
- ErrorWriteM db "Rasant duomenis i faila ivyko klaida$"
- ErrorCloseWriteM db "Uzdarant rezultatu faila ivyko klaida$"
- ErrorCloseReadM db "Uzdarant duomenu faila ivyko klaida$"
- .code
- pradzia:
- MOV ax, @data
- MOV ds, ax
- ;Atidaryti skaitymui
- MOV ah, 3Dh
- MOV al, 00
- MOV dx, offset DuomenuFailas
- INT 21h
- JC ErrorOpenRead
- MOV DeskDuom, ax
- ;Atidaryti rasymui
- MOV ah, 3Ch
- MOV cx, 0
- MOV dx, offset RezultatuFailas
- INT 21h
- JC ErrorOpenWrite
- MOV DeskRez, ax
- ;Skaitymas
- read:
- MOV bx, DeskDuom
- CALL ReadBuf
- CMP ax, 0
- JE uzdarytiRasymui ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- ;Duomenu keitimas
- MOV cx, ax
- MOV si, offset SkaitBuf
- ;MOV di, offset ResBuf
- PUSH ax
- dirbk:
- PUSH cx
- MOV dl, [si]
- CMP dl, '0'
- JB tesk
- CMP dl, '9'
- JA tesk
- CMP dl, '0'
- JE nulisc
- CMP dl, '1'
- JE vienasc
- CMP dl, '2'
- JE duc
- CMP dl, '3'
- JE trysc
- CMP dl, '4'
- JE keturic
- CMP dl, '5'
- JE penkic
- CMP dl, '6'
- JE sesic
- CMP dl, '7'
- JE septynic
- CMP dl, '8'
- JE astuonic
- CMP dl, '9'
- JE devynic
- nulisc:
- MOV ah, 40h
- MOV bx, DeskRez
- MOV dx, offset nulis
- MOV cx, 5
- INT 21h
- JC ErrorWrite
- JMP dummy
- vienasc:
- MOV ah, 40h
- MOV bx, DeskRez
- MOV dx, offset vienas
- MOV cx, 6
- INT 21h
- JC ErrorWrite
- JMP dummy
- duc:
- MOV ah, 40h
- MOV bx, DeskRez
- MOV dx, offset du
- MOV cx, 2
- INT 21h
- JC ErrorWrite
- JMP dummy
- trysc:
- MOV ah, 40h
- MOV bx, DeskRez
- MOV dx, offset trys
- MOV cx, 4
- INT 21h
- JC ErrorWrite
- JMP dummy
- readpart:
- JMP read
- keturic:
- MOV ah, 40h
- MOV bx, DeskRez
- MOV dx, offset keturi
- MOV cx, 6
- INT 21h
- JC ErrorWrite
- JMP dummy
- penkic:
- MOV ah, 40h
- MOV bx, DeskRez
- MOV dx, offset penki
- MOV cx, 5
- INT 21h
- JC ErrorWrite
- JMP dummy
- sesic:
- MOV ah, 40h
- MOV bx, DeskRez
- MOV dx, offset sesi
- MOV cx, 4
- INT 21h
- JC ErrorWrite
- JMP dummy
- septynic:
- MOV ah, 40h
- MOV bx, DeskRez
- MOV dx, offset septyni
- MOV cx, 7
- INT 21h
- JC ErrorWrite
- JMP dummy
- astuonic:
- MOV ah, 40h
- MOV bx, DeskRez
- MOV dx, offset astuoni
- MOV cx, 7
- INT 21h
- JC ErrorWrite
- JMP dummy
- devynic:
- MOV ah, 40h
- MOV bx, DeskRez
- MOV dx, offset devyni
- MOV cx, 6
- INT 21h
- JC ErrorWrite
- JMP dummy
- tesk:
- MOV ah, 40h
- MOV bx, DeskRez
- MOV Char, dx
- MOV dx, offset Char
- MOV CX, 1
- INT 21h
- dummy:
- POP cx
- INC si
- CMP cx, 0
- JE baigesloop
- DEC cx
- JMP dirbk
- baigesloop:
- POP ax
- CMP ax, 10
- JE readpart
- Pabaiga:
- uzdarytiRasymui:
- MOV ah, 3Eh
- MOV bx, DeskRez
- INT 21h
- JC ErrorCloseWrite
- uzdarytiSkaitymui:
- MOV ah, 3Eh
- MOV bx, DeskDuom
- INT 21h
- JC ErrorCloseRead
- MOV ah, 4Ch
- MOV al, 0
- INT 21h
- ErrorCloseRead:
- mov ah, 9
- mov dx, offset ErrorCloseReadM
- int 21h
- ErrorCloseWrite:
- mov ah, 9
- mov dx, offset ErrorCloseWriteM
- int 21h
- ErrorWrite:
- mov ah, 9
- mov dx, offset ErrorWriteM
- int 21h
- ErrorOpenRead:
- mov ah, 9
- mov dx, offset ErrorOpenReadM
- int 21h
- ErrorOpenWrite:
- mov ah, 9
- mov dx, offset ErrorOpenWriteM
- int 21h
- ;Proceduros
- ;Skaitymo procedura
- PROC ReadBuf
- PUSH cx
- PUSH dx
- MOV ah, 3Fh
- MOV cx, 10
- MOV dx, offset SkaitBuf
- INT 21h
- JC ErrorRead
- SkaitykBufPabaiga:
- POP dx
- POP cx
- RET
- ErrorRead:
- mov ah, 9
- mov dx, offset ErrorReadM
- int 21h
- MOV ax, 0
- JMP SkaitykBufPabaiga
- ReadBuf ENDP
- ;;;;;;;;;;;;;;;;;;;
- END pradzia
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement