URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6209
[ Назад ]

Исходное сообщение
"Аналог формата .COM"

Отправлено OptimusPrime , 28-Фев-07 00:22 
Снова привет и снова прошу помощи. Можно ли с помощью gas или gcc создать файлы, которые по структуре аналогичны формату файлов DOS .COM, т.е. все данные и код в одном сегменте и исполняемый файл содержит только машинный код, без всяких заголовков. Т.е. для его запуска достаточно просто скопировать его в память и установить IP на начало.

Содержание

Сообщения в этом обсуждении
"Аналог формата .COM"
Отправлено ACCA , 28-Фев-07 07:43 
>Снова привет и снова прошу помощи. Можно ли с помощью gas или
>gcc создать файлы, которые по структуре аналогичны формату файлов DOS .COM,

Думаю, что ты хочешь "real mode application". Посмотри здесь http://www.linuxselfhelp.com/HOWTO/Assembly-HOWTO/gas.html на предмет real mode. Насколько я понимаю, заставить gcc отдавать код в real mode - не совсем тривиальная задача.

Один из советов по bootloader был - сразу перейти в защищённый режим. Правда я не въехал, как в нём можно вызывать прерывания BIOS.

Похоже, что на Intel есть только два режима загрузки - real mode или PXE (этот только для ia64).


"Аналог формата .COM"
Отправлено DeadMustdie , 01-Мрт-07 09:18 
>Один из советов по bootloader был - сразу перейти в защищённый режим.
>Правда я не въехал, как в нём можно вызывать прерывания BIOS.

Путем перехода обратно в real mode, вызова прерывания и возврата в защищённый, если моя память мне с кем-то не изменяет.


"Аналог формата .COM"
Отправлено Forth , 01-Мрт-07 09:46 
>Путем перехода обратно в real mode, вызова прерывания и возврата в защищённый,
>если моя память мне с кем-то не изменяет.
Не изменяет, + в защищенном режиме int 0x13 и 0x10 на современных биосах можно вызывать.



"Аналог формата .COM"
Отправлено MKuznetsov , 01-Мрт-07 09:33 
>Снова привет и снова прошу помощи. Можно ли с помощью gas или
>gcc создать файлы, которые по структуре аналогичны формату файлов DOS .COM,
>т.е. все данные и код в одном сегменте и исполняемый файл
>содержит только машинный код, без всяких заголовков. Т.е. для его запуска
>достаточно просто скопировать его в память и установить IP на начало.
>

возьми любой 16-ти битный DOS`овский компилер и вперёд :)
borlandc, digital mars - да их море..
только возможно запускать их придётся в эмулятрое :)


"Аналог формата .COM"
Отправлено int_0dh , 02-Мрт-07 14:29 
>Снова привет и снова прошу помощи. Можно ли с помощью gas или
>gcc создать файлы, которые по структуре аналогичны формату файлов DOS .COM,
>т.е. все данные и код в одном сегменте и исполняемый файл
>содержит только машинный код, без всяких заголовков. Т.е. для его запуска
>достаточно просто скопировать его в память и установить IP на начало.
>
читать man objcopy на предмет опции -O binary до полного просветвления