[#] [Перевод] Программа «Hello World» на машинном коде под DOS
BotHabr(tgi,2) — All
2025-09-22 16:27:16


Опубликовано: Mon, 04 Aug 2025 20:37:39 GMT
Канал: Все статьи подряд / Assembler / Хабр

Как-то раз я послушал следующее интересное выступление (по-немецки): ссылкаВ нём разобрано, как написать программу «hello world» для 64-разрядного дистрибутива Linux в шестнадцатеричном редакторе. Ассемблер здесь не используется, программа пишется непосредственно на машинном коде. Правда, в ней есть издержки на использование ELF.Мне понравилась такая идея, и я решил повторить такой опыт, но немного в иной форме — а именно под 16-разрядной DOS в реальном режиме. У меня должен был получиться файл в формате COM, а не EXE, так как (на данном этапе) меня интересовал не столько формат файла, сколько кодировка инструкций. В вышеупомянутой лекции, если честно, не сообщается почти никаких подробностей о том, как именно перейти от ассемблерного кода к машинному — поскольку в случае разбора этих тем лекция, пожалуй, растянулась бы на несколько часов. Но здесь я всё разберу подробно, и при этом собираюсь пользоваться только документацией lntel, а также дизассемблировать код в целях верификации.Также мы коротко поговорим о сегментации.В качестве шестнадцатеричного редактора на этот раз воспользуемся hexedit. Читать далее]]>

https://habr.com/ru/articles/934032/