![]() |
|
|
![]()
|
|
| PrettyGirl |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 9.5.2006 Репутация: нет Всего: нет |
в реализации DES'а понадобилась функция, собирающая битовый массив в число. Откопала вот такую:
но почему-то ошибка с памятью вот в этой строке: next: cmp [esi],0 не очень знакома с асмом. Вообще задание написать Des на Builder. может кто-ниб объяснит этот кусок кода? и как устранить ошибку? Заранее спасибо! |
|||
|
||||
| Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: нет Всего: 61 |
компилятору не очень понятен размер сравниваемых участков памяти. Т.е. нужен префикс размерности
-------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
| PrettyGirl |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 9.5.2006 Репутация: нет Всего: нет |
почему-то не помогает....
по-прежнему та же ошибка: Project Project1.exe raised exeption class EAccessViolation with message 'access violation at adress A04011A1. Read of adress 00133000'. Process stop. Use step or run to continue. |
|||
|
||||
| sgi1981 |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 284 Регистрация: 16.3.2006 Репутация: 1 Всего: 10 |
next: cmp byte ptr [esi],0 указание компилятору размера операнда в памяти
mov cx,8 старшая половина регистра cx - регистр ch может быть не равен 0, и это станет причиной выхода за предел допустимого максимального индекса массива. -------------------- Тело в нашем пространстве - есть часть пространства, в которой пространство обладает дисторсией относительно внешнего пространства. |
||||
|
|||||
| PrettyGirl |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 9.5.2006 Репутация: нет Всего: нет |
и как это исправить?
подскажите пожалуйста? в асме не очень разбираюсь... Добавлено через 7 минут и 52 секунды заменила строку: mov cl,8 на строку mov cx,8 все та же ошибка.... |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 2 Всего: 158 |
1. если строка обычная("01101.."), то сравнивать надо было с '0'
2. такая "оптимизация" даст только проигрыш(причем ощутимый) в скорости обработки, по сравнению с обычным кодом на C++ и нормальным(да и даже средним) оптимизирующим компилятором. 3. в сети куча исходников des'а на любых языках, написанных со знанием дела... ps. ну а если цель сугубо учебная, то вот исправленный вариант этого кода:
|
|||
|
||||
| PrettyGirl |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 9.5.2006 Репутация: нет Всего: нет |
спасибо,теперь заработало
я что-то не смогла найти не одной реализации DES на Builder :( Если есть на примете какая-ниб реализация(кроме Шнайера),то киньте пожалуйста ссылку? Необходимо,как воздух!!!! Добавлено через 2 минуты и 42 секунды не могли бы вы подсказать,как реализовать эту функцию на С++? |
|||
|
||||
| PrettyGirl |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 9.5.2006 Репутация: нет Всего: нет |
а вот ещё одна функция...в ней тоже проблемы возникли...
подскажите пожалуйста,как её исправить? |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: нет Всего: 386 |
Это сообщение отредактировал(а) ksnk - 2.5.2007, 18:53 -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| PrettyGirl |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 62 Регистрация: 9.5.2006 Репутация: нет Всего: нет |
stosb ошибка в этой строке
Добавлено через 30 секунд всмысле,с памятью |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: нет Всего: 386 |
Проверь, там вместо esi должны edi использоваться...
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 2 Всего: 158 |
убери ненужные push/pop ax,cx (push/pop esi, вообще говоря, тоже не нужны...)
и mov ecx,8 ps.
|
|||
|
||||
| fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: нет Всего: 1 |
простите, а поправку на ASCII, в последнем примере разве не надо делать?
-------------------- undefined |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 2 Всего: 158 |
||||
|
||||
![]()
|
| Правила форума "Asm для Windows/DOS" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm для Windows/Dos | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |