|
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 82
|
|
Разбор программы "Архиватор"06.07.2013, 14:54. Показов 8074. Ответов 66
Метки нет (Все метки)
Всем доброго времени суток, ребят мне нужна помощь в программе, точнее прога есть, но не понимаю в ней(сижу в книгах разбираюсь, но получается долго).
Кто-нить помогите прокомментировать программу, так что бы было понятно(малость глуп)... Спасибо!
0
|
|
| 06.07.2013, 14:54 | |
|
Ответы с готовыми решениями:
66
Разбор программы Разбор программы Архиватор данных - возможна ли оптимизация программы? |
|
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
|
|
| 08.07.2013, 12:05 | |
|
sh2ezo, ну не знаю... перед асмом у меня был паскаль (на мой вгляд тупейший язык) и СИ++. вроде норм асм понимал...
1
|
|
| 08.07.2013, 14:20 | |
|
1
|
|
|
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 82
|
|||||||||||
| 11.07.2013, 21:00 [ТС] | |||||||||||
|
сижу разбираюсь в данной проге: поймал исключение, точнее понял где оно происходит - в процедуре, но не понял где именно:
Добавлено через 4 часа 42 минуты я понял прикол, это не исключение, у меня кажись память не так выделяется, в связи с чем TD стирает некоторые строки кода, стек данных стирает код как я понимаю... всё дело в шапке программы:
0
|
|||||||||||
|
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
|
|
| 12.07.2013, 08:12 | |
|
1
|
|
|
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 82
|
|
| 12.07.2013, 08:18 [ТС] | |
|
не совсем понял вопрос(
0
|
|
|
608 / 406 / 8
Регистрация: 26.04.2012
Сообщений: 2,065
|
|
| 12.07.2013, 08:30 | |
|
может я что-то не так понял. после выхода из процедуры он поподает "в никуда"? вроде со стеком все в порядке, но попробуйте проследить за изменениями в стеке, чтобы все, что засунуто в стек было высуното.
1
|
|
|
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 82
|
|
| 12.07.2013, 08:50 [ТС] | |
|
со стеком всё в порядке, да, но почему-то данные стека стирают код в TD:
0
|
|
|
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 82
|
||||||||||||||||||
| 12.07.2013, 14:06 [ТС] | ||||||||||||||||||
|
закомментил строку:
;CALL FindNextParam 96 по счёту строка и вроде программа отрабатывается норм в TD, но попрежнему не работает сама прога, так как она должна вывести на экран : Huffman Encoder 1.0 Usage : huffman.com a <source.ext> [dest.huf] - add to archive, huffman.com e <source.huf> - extract from archive. а потом мы должны водить... .. но выдает пустую строку, вернее ничего не выдает... Добавлено через 26 минут выдает ошибку в конце отрабатываем проги
беда со мной, че то не пашет... или я не понимаю...
0
|
||||||||||||||||||
|
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
|
||
| 12.07.2013, 18:13 | ||
|
Блин, да ты-же эту программу как EXE компилируешь. А она-же написана как COM !
Добавлено через 10 минут Добавлено через 1 час 11 минут P.S. Посмотрел в учебник Юрова ASSEMBLER 2-е издание и ... действительно не написано. Короче, компиляция COM-программы : tasm /m/l proga.asm tlink /t proga.obj
1
|
||
|
Ушел с форума
16383 / 7695 / 1080
Регистрация: 11.11.2010
Сообщений: 13,783
|
||
| 12.07.2013, 18:37 | ||
|
1
|
||
|
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 82
|
||||||
| 12.07.2013, 20:48 [ТС] | ||||||
|
Ethereal, Большое спасибо
, спрашивал у многих, все смотрели в код, но никто не понимал что компилить надо было com)))всё сделал, программа работает, но появилась маленькая ошибка, точнее неправильно написано функция вызыва(как я понимаю):
Mikl___, теперь мне всё понятно, спасибо)
0
|
||||||
|
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
|
||||||
| 13.07.2013, 07:51 | ||||||
|
В чем неправильность по твоему мнению ?
У автора программы функция FindFirstParam возвращает результат во флаге Z слова состояния процессора. Команда ret этих флагов не меняет, поэтому можно выставить или сбросить какой-нибедь флажок в подпрограмме, тут-же выйти из подпрограммы по ret, тогда во флажке окажется признак успешности или не успешности отработки подпрограммы. Процессор в твоей программе последовательно исполнит инструкции :
1
|
||||||
| 13.07.2013, 08:49 | |
|
1
|
|
|
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 82
|
||||||||||||||||||
| 13.07.2013, 22:48 [ТС] | ||||||||||||||||||
|
Ethereal, спасибо
за пояснение(лучше понял работу этой команды) , но ошибка маленько в другом месте, сейчас конкретнее поясню)
но вот беда, программа выводит строчки:
ведь после
(у вас программа идёт нормально???) (у меня заканчивает работу после вывода строк с инф.)
0
|
||||||||||||||||||
|
6773 / 2741 / 385
Регистрация: 17.02.2013
Сообщений: 4,048
|
|||||||
| 14.07.2013, 10:25 | |||||||
|
Если ты не задал программе параметры командной строки, то
JZ ShowUsage сработает, управление улетит на метку ShowUsage, а там код, который завершается INT 20h <-----и наконец выходит из проги Если ты задал программе корректные параметры командной строки, то JZ ShowUsage не сработает и тогда и только тогда выполнится
И какое еще меню ? Если ты не задал программе параметры командной строки, то она тебе показывает Usage (ShowUsage) - как ее использовать и завершается. Так и должно быть ! Если пользователь неправильно использует программу надо ему сказать как это делать правильно и завершиться. Разве не так ? Добавлено через 4 минуты Внимательно читай эти строки Usage : huffman.com a <source.ext> [dest.huf] - add to archive, huffman.com e <source.huf> - extract from archive. пока не дойдет.
1
|
|||||||
|
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 82
|
|
| 14.07.2013, 10:58 [ТС] | |
|
Спасибо!!!!!!!!!!!
С вашей помощью до меня дошло!!!!! Программа работает на ура!!!!!!!!!!!!! ![]() ![]() ![]()
0
|
|
|
programmer
2391 / 524 / 69
Регистрация: 01.06.2011
Сообщений: 3,638
|
|
| 20.07.2013, 08:18 | |
|
помотрел код,но не пойму почему автор не использовал структуры для узлов?
По мне так это не самая лучшая реализация Хаффмана как по стилю,так и по коду. Как он адаптивный реализовывал бы вобще не понятно.
0
|
|
|
639 / 482 / 12
Регистрация: 10.01.2011
Сообщений: 1,045
|
|
| 20.07.2013, 12:19 | |
|
0
|
|
|
programmer
2391 / 524 / 69
Регистрация: 01.06.2011
Сообщений: 3,638
|
||||||
| 20.07.2013, 17:20 | ||||||
|
Теорию информацию не первый год изучаю.Реализовывал Хаффмана,адаптивный ренж кодер,JPEG2000,ENUC и еще куча всяких кодировщиков типа Хемминга и т.д.
Но увы на С/C++,не припомню чтобы на асме.Конкретно с деревьями работал по шахматной задаче,найти максимальное поражение фигур ходом коня за n шагов.Поэтому представление как работать с деревьями имею. Второй момент,на асме пишу 7 лет. этого достаточно,что бы понимать как должен выглядеть код для метода сжатия по Хаффману на асме? Теперь вам вопрос.Что я не так сказал по поводу кода?Ваши аргументы. Задача была своеобразной,но код расчитываеться префиксный с построением дерева. Над оптимизацией кода сильно не заморачивался.
0
|
||||||
|
639 / 482 / 12
Регистрация: 10.01.2011
Сообщений: 1,045
|
||
| 20.07.2013, 18:43 | ||
|
0
|
||
| 20.07.2013, 18:43 | |
|
После попытки скачать архиватор, не удаляются программы Как из программы Java вызвать архиватор и заархивировать файл ? разбор программы Разбор программы 2 Разбор программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации:
1. Вернуть возможность использования знаков | 1 l I;. . .
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки.
Добавлены следующие реквизиты типа Булево:
- Буквы;
- Цифры;
- Символы.
Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
|
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей.
Самым главным критерием для. . .
|
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store.
И так:
1. Скачиваем с. . .
|