Assembler. Шифрование.

  • Автор темы stilldreaming
  • Дата начала
Статус
Закрыто для дальнейших ответов.
S

stilldreaming

#1
Ребят, помогите пожалуйста с заданием. Сам уже замучался, знакомых кто может помочь нету. Расчитываю на вас.
Задание такое
текст для шифрования вводится в командной строке. Удалить пробелы и зашифровать текст. Текст разбивается на тройки букв. Коды букв каждой тройки складываются с кодами букв слова DOG по модулю 26(при этом считается, что код буквы A - 1 и так далее). Хвост текста(остаток от разбиения на тройки не изменять.

вот текст того, что я написал:
[codebox].MODEL SMALL
.STACK 100h
.DATA
text_b DB 83 DUP(?)
text_c DB 80 DUP(?)
.CODE
encode PROC
mov al,es:[di]
mov ah,0
add al,'D'
sub al,80h
mov bl,26
cbw
idiv bl
add ah,40h
mov [si],ah
inc si
inc di
mov al,es:[di]
mov ah,0
add al,'O'
sub al,80h
mov bl,26
cbw
idiv bl
add ah,40h
mov [si],ah
inc si
inc di
mov al,es:[di]
mov ah,0
add al,'G'
sub al,80h
mov bl,26
cbw
idiv bl
add ah,40h
mov [si],ah
inc si
inc di
clc
ret

encode ENDP

start:
mov ax,@data
mov ds,ax
mov cx,0
mov cl,es:[80h]
mov si,82h
mov di, offset text_b
mov dx,0
dec cl
n: mov al,es:[si]
cmp al,20h
je cont
cmp al,0Dh
je __end
mov [di],al
inc di
inc bl
cont: inc si
loop n

__end: mov al,bl
mov bl,3h
cbw
idiv bl
mov cx,0
mov cl,al

mov si, offset text_c
mov di, offset text_b

n1: call encode
loop n1


end_prog: mov word ptr [si],0A0Dh
inc si
inc si
mov byte ptr [si],'$'


mov dx, offset text_c
mov ah,09h
int 21h
mov ah,04Ch
mov al,0h
int 21h
END start[/codebox]



для любого набора символов, программа все кодирует одинаково( в зависимости от количества символов).
Подскажите где ошибки плз.
 
Статус
Закрыто для дальнейших ответов.