破碎细胞 发表于 2009-02-19 17:17

原帖由 swordfish.cn 于 2009-2-19 17:16 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
Mark 一下,哈哈。不能偷懒哦。
呵呵,还得谢谢你哦。

beepbug 发表于 2009-02-19 18:57

就512字节,用C写?会不会更麻烦?估计不如用汇编来得快捷。

swordfish.cn 发表于 2009-02-19 20:42

也不是说完全不能用 C 了,可以

gcc -S file.c

切记在 c 文件开头加上

asm(".code16gcc")

然后把生成的汇编 copy 过去。

不过大小是个问题,要好好斟酌。

原来一直以为是 ld 的 script 出问题,查了半天资料。后来才发现是 BIOS 只读了 512 byte,太残念了。
以前看 GRUB 代码时就注意到 loader 要先被 boot sector 的代码读入内存再 call,这下就没注意。只看不练果然不行啊。:outu:

coneagoe 发表于 2009-02-24 08:21

原帖由 swordfish.cn 于 2009-2-19 20:42 发表 http://linux.chinaunix.net/bbs/images/common/back.gif
也不是说完全不能用 C 了,可以

gcc -S file.c

切记在 c 文件开头加上

asm(".code16gcc")

然后把生成的汇编 copy 过去。

不过大小是个问题,要好好斟酌。

原来一直以为是 ld 的 script 出问题 ...


mark一下

hansion3406 发表于 2012-09-17 10:53

呵呵,不错
页: 1 [2]
查看完整版本: [貌似已解决]gcc编译汇编和c的函数调用的问题