[Asm]Operacja na plikach

0

Witam.
Potrzebuje przerobic programu zeby przepisywal z jednego pliku do drugiego ciag znakow odwrotnej kolejnosci.np. ABCD jest zapisane w pierwszym pliku a w drugim zeby to przepisalo jako DCBA.
Mam programik ktory przepisuje znaki zplikud o pliku i trzeba go tylko przerobic:

.model small

.stack 512

.data
file1   db "in.txt", 0
file2   db "out.txt", 0

.data?
buffer	db 1024 dup (?)

.code
start:
        mov ax, seg file1
        mov ds, ax
        ; open input file
        mov dx, offset file1    ; DS:DX - nazwa pliku
        mov ah, 3Dh             ; otworz plik
        mov al, 0               
        int 21h                
        jc open_error          
        mov si, ax             
        ; plik wyjsciowy
        mov dx, offset file2
        mov cx, 0               
        mov ah, 3Ch             ;utworz plik
        int 21h
        jc create_error         
        mov di, ax              
        mov ax, seg buffer
        mov ds, ax

copy_loop:
        mov dx, offset buffer
        ; read block
        mov bx, si              
        mov cx, sizeof buffer
        mov ah, 3Fh             
        int 21h
        jc loop_error
        cmp ax, 0
        jz loop_error           
        ; write block
        mov bx, di              
        mov cx, ax
        mov ah, 40h             
        int 21h
        jz loop_error           
        ; write '*'
        mov ah, 02h
        mov dl, '*'
        int 21h                 

        jmp copy_loop

loop_error:
        mov ah, 3Eh             ; zamknij cel
        mov bx, di
        int 21h

create_error:
        mov ah, 3Eh             ; zamknij zrodlo
        mov bx, si
        int 21h
open_error:
        mov ax, 4C00h           ; koniec
	int 21h
end start

Czy moze ktos ten programik przerobic? I prosze o szybka odpowiedz bo mam go miec gotowego na godzine 15 :(

0

Patrząc na sposób działania programu to nie da się go przerobić tak żeby zapisywał to w odwrotnej kolejności ponieważ on działa na fragmentach pliku a nie na całości. Po prosu po takiej przeróbce to wyszedł by zupełnie inny program, a więc lepiej już jest napisać nowy niż przerabiać ten.

Poza tym do 15 to mi sie nie chce tego robić ;p

0

hmm nie dasz rady cos napisac? :/
albo jakas podpowiedz jak to zrobic:/

0

odpowiedz jest prosta ;) >>STOS

Pakujesz kazda literke na stos a pozniej sciagasz i zapisujesz do innego pliku i masz odwrócony tekst < :-)

Wystarczy to "tylko" odpowiednio zaimplementowac ;-P

PS: Tylko STOS zaimpementoj sobie swoj najlepiej (np za pomoca łańcucha odsyłaczowego)...
Pozdro

1 użytkowników online, w tym zalogowanych: 0, gości: 1