+ -
当前位置:首页 → 问答吧 → 我想开发个小系统

我想开发个小系统

时间:2010-08-29

来源:互联网

我想开发个小系统

就是汇编代码直接跳转引导后直接跳转到C代码

汇编代码如下
start:
    calll _main

    0x55aa

C代码如下:
_main()
{
    for( ; ; );
}

问题是我C代码编译出来就是具有格式的文件。带有GCC的初始化代码,就是垃圾代码。怎么去掉它?
第二怎么把俩个文件联接起来。做成bin文件。

作者: alleva   发布时间: 2010-08-29

哦,原来是想是做bootloader......

作者: tempname2   发布时间: 2010-08-29



QUOTE:
哦,原来是想是做bootloader......
tempname2 发表于 2010-08-29 23:46




    是

作者: alleva   发布时间: 2010-08-29



QUOTE:
哦,原来是想是做bootloader......
tempname2 发表于 2010-08-29 23:46




   学历只有中专毕业。所以水平很臭。大哥见晾

作者: alleva   发布时间: 2010-08-29

你想把程序压到512 byte 之内吗?用C语言几乎是不可能的,最开始的一段代码都是用汇编写的,你要建立运行的环境,比如数据段,堆栈段等等。

可以看下Grub的代码,正好我今天刚刚把前两个512 bytes看完,有什么问题可以讨论一下。

作者: tempname2   发布时间: 2010-08-29



QUOTE:
你想把程序压到512 byte 之内吗?用C语言几乎是不可能的,最开始的一段代码都是用汇编写的,你要建立运行的 ...
tempname2 发表于 2010-08-29 23:49




    做成一个BIN。把后面读到内存里就可以了。

作者: alleva   发布时间: 2010-08-29

自已分析ELF文件才是王道,GOOGLe之,很容易就可以找到你要的东西

gld也可以Link成裸代码,但不大好用

作者: folklore   发布时间: 2010-08-29

运行在PC上吗?你去哪里读这个镜像?

作者: tempname2   发布时间: 2010-08-29



QUOTE:
你想把程序压到512 byte 之内吗?用C语言几乎是不可能的,最开始的一段代码都是用汇编写的,你要建立运行的 ...
tempname2 发表于 2010-08-29 23:49




   
我只会写点垃圾代码。不知道怎么操作...

作者: alleva   发布时间: 2010-08-29

俺放假之前买了《程序员的自我修养》和《OrangeS一个操作系统的实现》,但是整个暑假才把第一本看了一大半。第二本里正好有个hello,world的bootloader的例子。我见过第一版的电子版,第一版叫《自己动手写操作系统》,你网上搜搜。。。。。

作者: tempname2   发布时间: 2010-08-29



QUOTE:
俺放假之前买了《程序员的自我修养》和《OrangeS一个操作系统的实现》,但是整个暑假才把第一本看了一大半。 ...
tempname2 发表于 2010-08-29 23:55




    书我有。俩本都买了。觉得都很垃圾。

作者: alleva   发布时间: 2010-08-29