|
0 / 0 / 0
Регистрация: 13.06.2013
Сообщений: 82
|
|
Разбор программы "Архиватор"06.07.2013, 14:54. Показов 7716. Ответов 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
|
||
|
Ушел с форума
16374 / 7686 / 1080
Регистрация: 11.11.2010
Сообщений: 13,761
|
||
| 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 Разбор программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Расчёт периметра прямоугольника по координатам вершин
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Вычислить периметр прямоугольника, заданного координатами своих вершин на плоскости.
Решение:
Создан документ со следующими. . .
|
Подсчёт частоты трёхбуквенных слов в тексте
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Выясните, сколько раз в предложенном тексте встречается каждое трехбуквенное слово.
Решение:
Создан документ с единственным. . .
|
Сумма и количество положительных элементов в чётных строках массива
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Вычислить сумму и количество положительных элементов массива, расположенных в четных строках.
Решение:
Создан документ с. . .
|
Поиск произведения положительных чётных чисел в последовательности
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Дана произвольная последовательность целых чисел. Найти произведение положительных четных чисел данной последовательности.
. . .
|
|
Обработка трёх чисел: утроение и возведение в степень
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Даны три действительных числа. Утроить те из них, значения которых неотрицательны, и возвести в четвертую степень отрицательные.
. . .
|
Расчёт стоимости яблок по весу
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Написать программу вычисления стоимости некоторого количества (по весу) яблок.
Решение:
Создан документ, с табличной частью. . .
|
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни
1. Механизм отложенного высвобождения фосфора
Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ
Реализована разная скорость. . .
|
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2.
Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
|