![]() |
|
|
![]()
|
|
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
Это вопрос из другого форума - там правда обсуждение не очень, решил перенести его сюда (не сочтите за хамство, просто очень интересно)
задача - вывести сообщение "Hello world!" уместив код и данные в 16 байтах программы. -------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 1 Всего: 118 |
Ну если на старом DOS, то вообщем то где-то так и получится.
До конца все не помню, но если память не изменяет, то через 21h (функция 9)прерывание можно вывести строку, начало которой находится в регистрах. Только надо для ассемблера указать, что это не .exe, а .com ORG 100H - хотя могу здесь наврать. На ходу не вспомнить. Вообщем, что-то в этом роде. |
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
повторяю - длина строки 13 байт
остается 3... прерывание CD 21 и retn = 3 байта -------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 1 Всего: 118 |
Ты хочешь код получить ?
Ну не помню я уже так хорошо асм. Может и правда для моего случая надо чуть больше. Неужели это так волнует ? |
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
код хочется увидеть. Раз сказано, что можно уложиться в 16 байт - мне например очень интересно как.
-------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| AntonSaburov |
|
|||
![]() Штурман ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 5658 Регистрация: 2.7.2002 Где: Санкт-Петербург Репутация: 1 Всего: 118 |
Увы, работать надо, да и на машине сейчас кроме JAVA нет ничего. Попробуй сам. Если получится - напиши.
|
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: нет Всего: 207 |
Можно уместить в 12 байтов - создаёшь BAT файл, пишешь в него "Hello world!", на экран эта запись при запуске попадёт, что и требуется...
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
Насколько я понял вопрос того форума - bat файл нельзя использовать. Как и командную строку (т.е. программа не исп. параметры ком. строки).
--- и echo тоже -------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: нет Всего: 12 |
А почему в теме С++? На сях написать надо чтоли? дык там стаб огромный.
-------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| Klin |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1938 Регистрация: 7.10.2002 Где: Краснодар Репутация: нет Всего: 25 |
Создай htm, уместишся в 12 байт!
-------------------- Я человек - попробуйте обвинить меня за это. |
|||
|
||||
| man2002ua |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 943 Регистрация: 12.11.2002 Где: Киев Репутация: нет Всего: 2 |
ну извините! Перенесите топик в ассемблер, пожалуйста.
Задача состоит в написании *.com файла. -------------------- "Нет ничего более постоянного, чем временное" |
|||
|
||||
| Sail Destiny |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 7.7.2002 Репутация: нет Всего: нет |
Я над этой же задачкой 4 день думаю.
Еще на Сайте Владислава Пирогова некий Anshik сказал, что может в 16 байт. Наверно это чью-то злая шутка. Можно попробовать самомодифицирующийся код (я ничего не придумал). Может быть надо часть строки использовать как код, но сторка дизассемблируется в бессмысленный. Или подобрать float-число в 4 байта, которое при сохранении с помощью fbstp (двоично-десятичное 10 байт) представляло бы часть (10(!) символов) этой строки (или полезного кода). Но строка содержит байты, не используемые в 2-10 числах (e.g. "l"("эль")-6CH). Кажется интересный вопрос |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: нет Всего: 12 |
echo Hello world!
помойму токо так... где-то я видел прогу, которая так выводила, но там грили, что надо как-то tasm.exe переправить, чтобы она её скопилила... получается ооочень мелкая... -------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| Sail Destiny |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 7.7.2002 Репутация: нет Всего: нет |
Почти втему...
А не может ли вообще произойти, напрмер, следующее: Идет группа 2 байтных инструкций, после них стоит jmp назад на нечетное число байт - в результате попадаем вразрез какой-то инструкции, получаем другую последовательность инструкций, и вдруг она окажется полезной? Нехай удастся сжать код почти в 2 раза. |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: нет Всего: 12 |
Sail Destiny, не катит... сам jmp занимает место... да и ничего там полезного не выжмешь...
-------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
![]()
|
| Правила форума "Asm: Общие вопросы" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |