|
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 82
|
|
Разбор программы "Архиватор"06.07.2013, 14:54. Показов 7501. Ответов 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
|
||
|
Ушел с форума
16373 / 7685 / 1080
Регистрация: 11.11.2010
Сообщений: 13,759
|
||
| 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 / 525 / 69
Регистрация: 01.06.2011
Сообщений: 3,639
|
|
| 20.07.2013, 08:18 | |
|
помотрел код,но не пойму почему автор не использовал структуры для узлов?
По мне так это не самая лучшая реализация Хаффмана как по стилю,так и по коду. Как он адаптивный реализовывал бы вобще не понятно.
0
|
|
|
639 / 482 / 12
Регистрация: 10.01.2011
Сообщений: 1,045
|
|
| 20.07.2013, 12:19 | |
|
0
|
|
|
programmer
2391 / 525 / 69
Регистрация: 01.06.2011
Сообщений: 3,639
|
||||||
| 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 | |
|
Помогаю со студенческими работами здесь
40
После попытки скачать архиватор, не удаляются программы Как из программы Java вызвать архиватор и заархивировать файл ? разбор программы Разбор программы 2 Разбор программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|