N
net_vlad
Вкратце. Прога реализует алгоритм гаммирования. Для работы нужны два файла: plain.txt и secret.txt.
Первый содержит открытый текст, второй изначально пустой, после отработки в него помещается зашифрованный текст. Алгоритм симметричен.
Собственно, проблема: при работе с большими файлами (например, полная версия Властелина колец в txt - порядка 2.7 метра) файл шифруется не в полном объеме, а только некоторая часть от начала. Количество обработанной инфы от случая к случаю произвольно. Но кодирует правильно. Выручайте!
Итак, сам код:
.model tiny
.code
.386
org 100h
ginger:
xor cx,cx
mov ax,3D00h
lea dx,plain
int 21h
mov bp,ax
mov ax,3D02h
lea dx,secret
int 21h
mov sp,ax
mov si,0
encoding:
mov bx,si
mov ax,word ptr a
mul bx
add ax,word ptr b
push ax
mov bx,bp
mov ah,3Fh
mov cx,2
lea dx,buffer
int 21h
mov di,ax
cmp di,0
je get_out
pop ax
mov bx,word ptr buffer
xor ax,bx
mov word ptr buffer,ax
mov ah,40h
mov bx,sp
mov cx,2
cmp di,1
jne go_on
mov cx,1
go_on:
lea dx,buffer
int 21h
inc si
jmp encoding
get_out:
ret
a dw 0DADh
b dw 07D8h
plain db 'plain.txt',0
secret db 'secret.txt',0
buffer db 2 dup(?)
end ginger
Ну и в прикрепленном архиве - файлы для работы проги плюс сам код.
P. S. Использовал компилятор MASM 6.11.
Первый содержит открытый текст, второй изначально пустой, после отработки в него помещается зашифрованный текст. Алгоритм симметричен.
Собственно, проблема: при работе с большими файлами (например, полная версия Властелина колец в txt - порядка 2.7 метра) файл шифруется не в полном объеме, а только некоторая часть от начала. Количество обработанной инфы от случая к случаю произвольно. Но кодирует правильно. Выручайте!
Итак, сам код:
.model tiny
.code
.386
org 100h
ginger:
xor cx,cx
mov ax,3D00h
lea dx,plain
int 21h
mov bp,ax
mov ax,3D02h
lea dx,secret
int 21h
mov sp,ax
mov si,0
encoding:
mov bx,si
mov ax,word ptr a
mul bx
add ax,word ptr b
push ax
mov bx,bp
mov ah,3Fh
mov cx,2
lea dx,buffer
int 21h
mov di,ax
cmp di,0
je get_out
pop ax
mov bx,word ptr buffer
xor ax,bx
mov word ptr buffer,ax
mov ah,40h
mov bx,sp
mov cx,2
cmp di,1
jne go_on
mov cx,1
go_on:
lea dx,buffer
int 21h
inc si
jmp encoding
get_out:
ret
a dw 0DADh
b dw 07D8h
plain db 'plain.txt',0
secret db 'secret.txt',0
buffer db 2 dup(?)
end ginger
Ну и в прикрепленном архиве - файлы для работы проги плюс сам код.
P. S. Использовал компилятор MASM 6.11.