| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm: Общие вопросы > микрокод |
| Автор: man2002ua 20.11.2002, 01:42 |
| Это вопрос из другого форума - там правда обсуждение не очень, решил перенести его сюда (не сочтите за хамство, просто очень интересно) задача - вывести сообщение "Hello world!" уместив код и данные в 16 байтах программы. |
| Автор: AntonSaburov 20.11.2002, 01:51 |
| Ну если на старом DOS, то вообщем то где-то так и получится. До конца все не помню, но если память не изменяет, то через 21h (функция 9)прерывание можно вывести строку, начало которой находится в регистрах. Только надо для ассемблера указать, что это не .exe, а .com ORG 100H - хотя могу здесь наврать. На ходу не вспомнить. Вообщем, что-то в этом роде. |
| Автор: man2002ua 20.11.2002, 01:53 |
| повторяю - длина строки 13 байт остается 3... прерывание CD 21 и retn = 3 байта |
| Автор: AntonSaburov 20.11.2002, 02:22 |
| Ты хочешь код получить ? Ну не помню я уже так хорошо асм. Может и правда для моего случая надо чуть больше. Неужели это так волнует ? |
| Автор: man2002ua 20.11.2002, 02:25 |
| код хочется увидеть. Раз сказано, что можно уложиться в 16 байт - мне например очень интересно как. |
| Автор: AntonSaburov 20.11.2002, 02:29 |
| Увы, работать надо, да и на машине сейчас кроме JAVA нет ничего. Попробуй сам. Если получится - напиши. |
| Автор: Vit 20.11.2002, 02:53 |
| Можно уместить в 12 байтов - создаёшь BAT файл, пишешь в него "Hello world!", на экран эта запись при запуске попадёт, что и требуется...
|
| Автор: man2002ua 20.11.2002, 02:57 |
| Насколько я понял вопрос того форума - bat файл нельзя использовать. Как и командную строку (т.е. программа не исп. параметры ком. строки). --- и echo тоже |
| Автор: Baa 20.11.2002, 09:24 |
| А почему в теме С++? На сях написать надо чтоли? дык там стаб огромный. |
| Автор: Klin 20.11.2002, 18:05 |
| Создай htm, уместишся в 12 байт! |
| Автор: man2002ua 20.11.2002, 18:54 |
| ну извините! Перенесите топик в ассемблер, пожалуйста. Задача состоит в написании *.com файла. |
| Автор: Sail Destiny 16.2.2003, 19:47 |
| Я над этой же задачкой 4 день думаю. Еще на http://asm.shadrinsk.net/ некий Anshik сказал, что может в 16 байт. Наверно это чью-то злая шутка. Можно попробовать самомодифицирующийся код (я ничего не придумал). Может быть надо часть строки использовать как код, но сторка дизассемблируется в бессмысленный. Или подобрать float-число в 4 байта, которое при сохранении с помощью fbstp (двоично-десятичное 10 байт) представляло бы часть (10(!) символов) этой строки (или полезного кода). Но строка содержит байты, не используемые в 2-10 числах (e.g. "l"("эль")-6CH). Кажется интересный вопрос |
| Автор: Baa 17.2.2003, 19:50 |
| echo Hello world! помойму токо так... где-то я видел прогу, которая так выводила, но там грили, что надо как-то tasm.exe переправить, чтобы она её скопилила... получается ооочень мелкая... |
| Автор: Sail Destiny 5.3.2003, 06:16 |
| Почти втему... А не может ли вообще произойти, напрмер, следующее: Идет группа 2 байтных инструкций, после них стоит jmp назад на нечетное число байт - в результате попадаем вразрез какой-то инструкции, получаем другую последовательность инструкций, и вдруг она окажется полезной? Нехай удастся сжать код почти в 2 раза. |
| Автор: Baa 5.3.2003, 08:08 |
| Sail Destiny, не катит... сам jmp занимает место... да и ничего там полезного не выжмешь... |
| Автор: Shur 5.3.2003, 16:53 |
| У меня была другая идея - запихнуть туда генератор псевдо-случайной последовательности, который "сгенерит" последовательно эти буковки. |
| Автор: Sext 11.3.2003, 08:25 |
| org 100h begin: mov ah, 09 mov dx, 81h int 21h ret end begin 8 байт. Выводит командную строку... запускать A.COM hello world!$ Бакс только обязательно ставить надо... В принципе можно прогой бакс поставить, еще уложится в 16... |
| Автор: stab 11.3.2003, 08:50 |
| to Sext ну ты крут |
| Автор: man2002ua 20.3.2003, 18:17 |
| командную строку использовать нельзя |
| Автор: leniviy 20.3.2003, 22:36 |
| а имя файла из PSP можно? |
| Автор: man2002ua 20.3.2003, 22:38 |
| предлагалось преподу - низзя никаких Hello_world.com |
| Автор: stab 21.3.2003, 22:14 |
| man2002ua предлагаю тебе написать исчерпывающее условие задачи, а то получается так -- кто бы что ни сделал все а итоге низя |
| Автор: man2002ua 21.3.2003, 22:17 | ||
Первые мои сообщения -
+ имя файла не использовать - я на том форуме это первым делом предложил |
| Автор: NightGoblin 12.4.2003, 21:41 |
| Хм.... а код для интеловских процессоров? |
| Автор: man2002ua 14.4.2003, 09:17 |
| Давай, давай |