Снова привет и снова прошу помощи. Можно ли с помощью gas или gcc создать файлы, которые по структуре аналогичны формату файлов DOS .COM, т.е. все данные и код в одном сегменте и исполняемый файл содержит только машинный код, без всяких заголовков. Т.е. для его запуска достаточно просто скопировать его в память и установить IP на начало.
>Снова привет и снова прошу помощи. Можно ли с помощью 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).
>Один из советов по bootloader был - сразу перейти в защищённый режим.
>Правда я не въехал, как в нём можно вызывать прерывания BIOS.Путем перехода обратно в real mode, вызова прерывания и возврата в защищённый, если моя память мне с кем-то не изменяет.
>Путем перехода обратно в real mode, вызова прерывания и возврата в защищённый,
>если моя память мне с кем-то не изменяет.
Не изменяет, + в защищенном режиме int 0x13 и 0x10 на современных биосах можно вызывать.
>Снова привет и снова прошу помощи. Можно ли с помощью gas или
>gcc создать файлы, которые по структуре аналогичны формату файлов DOS .COM,
>т.е. все данные и код в одном сегменте и исполняемый файл
>содержит только машинный код, без всяких заголовков. Т.е. для его запуска
>достаточно просто скопировать его в память и установить IP на начало.
>возьми любой 16-ти битный DOS`овский компилер и вперёд :)
borlandc, digital mars - да их море..
только возможно запускать их придётся в эмулятрое :)
>Снова привет и снова прошу помощи. Можно ли с помощью gas или
>gcc создать файлы, которые по структуре аналогичны формату файлов DOS .COM,
>т.е. все данные и код в одном сегменте и исполняемый файл
>содержит только машинный код, без всяких заголовков. Т.е. для его запуска
>достаточно просто скопировать его в память и установить IP на начало.
>
читать man objcopy на предмет опции -O binary до полного просветвления