当前位置: 技术问答>linux和unix
问题继问~~~~~~~~~~~~~~~~~~
来源: 互联网 发布时间:2015-05-31
本文导语: 我自己下了一段操作系统引导程序,其中用了汇编和c,开发环境是xp.我想用WinGw(gcc)来编译c,但输出默认目标文件是.exe,无法在bochs下测试,该如何控制输出目标文件或者说是如何编译才能通过软盘来引导系统。(注...
我自己下了一段操作系统引导程序,其中用了汇编和c,开发环境是xp.我想用WinGw(gcc)来编译c,但输出默认目标文件是.exe,无法在bochs下测试,该如何控制输出目标文件或者说是如何编译才能通过软盘来引导系统。(注:我用的笔记本,安装linux老是出错,不得已在xp下来开发,测试。)
|
有可能不能使用WinGw来编译,主要问题在于链接器,如果你使用的是x86处理器。
引导程序应该是16位程序,使用gcc编译恐怕只能生成32位程序;链接器最终链接生成的应该像dos下.com类型的程序,就是只有代码段和数据段,不包含杂七杂八的文件头等信息。
所以,你还是找一个能直接生成dos程序的编译器和链接器试试吧。
引导程序应该是16位程序,使用gcc编译恐怕只能生成32位程序;链接器最终链接生成的应该像dos下.com类型的程序,就是只有代码段和数据段,不包含杂七杂八的文件头等信息。
所以,你还是找一个能直接生成dos程序的编译器和链接器试试吧。
|
gcc编译恐怕只能生成32位程序?
不对吧?Linux内核一开始的初始化部分也是在实模式下阿,还不是一样用GCC编译生成?
不对吧?Linux内核一开始的初始化部分也是在实模式下阿,还不是一样用GCC编译生成?
|
不啊,在386及以上,实模式是32位,在此之下,是16位。当然了在386以上也是可以用16位(AX,BX,CX……)的。(就想在8086上还可以使用8位(AL,BL,CL……)那样。
|
对了,以前我在学8086汇编的时候,好象有个exe2bin的转换工具吧~~~
|
toCoolQ():
Linux的初始化部分使用的是汇编语言!如果是c语言,gcc只能生成32位程序。
Linux的初始化部分使用的是汇编语言!如果是c语言,gcc只能生成32位程序。
|
学习啊!!!
楼主何不一试!管它16位还是32位,搞一搞在看!
楼主何不一试!管它16位还是32位,搞一搞在看!
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。