Это был пример на ассемблере (заголовки я забыл, чтобы сразу получился ком-файл, что-то вроде org 100h) для ДОС К сожалению, под винду я на ассемблере не писал и поэтому не знаю, как выйти минималистким образом из программы, очевидно, что код Си main(){} создаст не самый маленький загружаемый модуль, а в досе нельзя написать просто 90h или программу нулевой длины, обязательно должен быть выход. Выход по 20 прерыванию самый короткий (можно ведь и фар джампы использовать).
Я в курсе, но времена ДОС давно прошли. Впрочем, самый короткий выход - по инструкции RET (1 байт), и вполне может быть, что это справедливо и для Win32.
есть последний байт, который сократить нельзя мне почему-то казалось что int 20h влезет в один байт, но подумав, что прерываний как раз на байт... так что Ваш пример как раз тот, что я имел в виду
Уточняю
Date: 2005-08-30 12:10 pm (UTC)К сожалению, под винду я на ассемблере не писал и поэтому не знаю, как выйти минималистким образом из программы, очевидно, что код Си main(){} создаст не самый маленький загружаемый модуль, а в досе нельзя написать просто 90h или программу нулевой длины, обязательно должен быть выход. Выход по 20 прерыванию самый короткий (можно ведь и фар джампы использовать).
Re: Уточняю
Date: 2005-08-30 12:24 pm (UTC)я ж говорю
Date: 2005-08-30 12:41 pm (UTC)мне почему-то казалось что int 20h влезет в один байт, но подумав, что прерываний как раз на байт...
так что Ваш пример как раз тот, что я имел в виду
На до же
Date: 2005-08-30 12:51 pm (UTC)Re: На до же
Date: 2005-08-30 01:20 pm (UTC)Тут любая ерунда так "заработает", это ж не дос...
любая ерунда
Date: 2005-08-30 01:25 pm (UTC)Re: любая ерунда
Date: 2005-08-30 02:11 pm (UTC)