|
|
|
unknow |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 15.5.2014 Репутация: нет Всего: нет |
Доброго времени суток.
Помогите. Задание такое: написать программу которая будет шифровать введенное слово МЕТОДОМ ГАММИРОВАНИЯ (если просто считать слово по символам то можно использовать команду XOR между символом сообщения и гаммой результат и будет закодированный символ. ) Гамма задается пользователем. Гамма должна быть равна длине сообщения. Помощь нужна в вводе с клавиатуры и как посимвольно просмотреть и сложить XOR все символы. Я начал писать и очень застрял не переходит по строчке. выводит 2 одинаковых символа или сколько указать в dl2 помогите пожалуйста ; Строки должны заканчиваться 0 .model small .stack 100h ; Размер стека 256 байт .data S1 db "Privet",0h S3 db "mnahki",0h n1 = $-1 s2 db 29 dup(?) ; строка s4 db 29 dup(?) ; строка dl1 dw 0 ;начальное значение dl2 dw 2 ;конечное значение .code ; Точка входа .startup ; Установка регистра DS на сегмент данных mov ax,@DATA mov ds,ax xor ax,ax ; Инициализация mov si,0 mov di,0 mov bx,0 mov cx,dl2 ;количество символов для считывания m1: cld lea si,S1[di] ;адрес откуда push ds pop es lodsb ; из s1 в al push si ; сохраняем текущий счетчик mov si,bx xor al,s3 inc si mov bx,si pop si ;восстановили счетчик lea di,s2 ; адрес куда rep stosb ; из al в s2 xor cx,cx ;—————————————————————вывод символа————————————————————— m5: mov cx,dl2 mov si,0 m4: mov dl,s2[si] mov ah,02 int 21h inc si loop m4 mov ax,4C00h int 21h EXITDOS: ; Выход в DOS end |
|||
|
||||
ФедосеевПавел |
|
|||
Опытный Профиль Группа: Участник Сообщений: 291 Регистрация: 7.2.2009 Репутация: нет Всего: 10 |
unknow, начни с константных строк, а уже потом введёшь их с клавиатуры.
Объясни назначение строк s1, s2, s3 и s4. Потом, что ты хочешь от них получить. А то у тебя страшная мешанина строковых команд усугублённая префиксом rep - я даже не всё понял. Ещё я думаю, что вывод нужно реализовывать средствами BIOS - int 10h, т.к. при гаммировании будут получены и символы с кодами от 00h до 20h - управляющие. Их int 21h воспринимает как команды. А почему ты, используя макрос .startup, выполняешь инициализацию регистра ds? PS Воспользуйся тегом Код - плохо видно твой исходник. Это сообщение отредактировал(а) ФедосеевПавел - 16.5.2014, 18:31 |
|||
|
||||
макс12345 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 18.2.2018 Репутация: нет Всего: нет |
||||
|
||||
pilov |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 6.1.2019 Репутация: нет Всего: нет |
|
|||
|
||||
gracieanderson |
|
|||
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 18.6.2019 Где: Melbourne Репутация: нет Всего: нет |
||||
|
||||
Правила форума "Asm: Общие вопросы" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |