boot.s 和 head.s在linux和windows不同平台的编译差别

fay8048 2011-06-09 03:04:09
小弟正在读《linux内核完全剖析--0.12》其中有两段汇编程序,在不同平台下用相同汇编器编译程序有变化,求解:
不用全部代码:
1 boot.s程序中有一句:
rep movw
呵呵,熟悉inter格式的不要骂我,在at&t或者as86中这个是正确的,首先,这段程序是用as86编译的,在书中是在一行,这样编译是不对的,会提示有垃圾参数,要分两行即:
rep
movw
这个不懂,这样的差别as86语法中还有吗?希望知道,以后碰上容易解决,谁有as86语法资料(如果是在线手册就不用啦。我一看过,没有提到这一点,google不到)。
2 head.s程序中是在windows 和linux不同平台都是用as编译器编译,GUN as,在windows 下叫gas,linux下就叫as
程序中有几处不同,都是关于子长的,
linux movl scr_loc, %ebx
windows movl scr_loc, %bx
linux .align 8
windows .align 3
linux movb $65, %al
windows movl $65, %al
这是不同的地方,小弟刚开始读内核,求解答。


...全文
161 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Aderic 2013-04-15
  • 打赏
  • 举报
回复
求答复!!!
Aderic 2013-04-15
  • 打赏
  • 举报
回复
我用windows下面的as86编译器与在ubuntu下面的as86编译器编译同一个文件发现生成的执行文件不一样,windows下面的比ubuntu下面的多粗一行而且前面一些十六进制的符号也不同
wlz2019039 2012-03-04
  • 打赏
  • 举报
回复
这个问题很好解释啊,你想一下不同平台下的信号设计是不同的,比如说西门子公司的操作码设置就和intel的操作码不同啊,所以在汇编编写驱动的时候在细节调用上也是不同的
fay8048 2011-06-09
  • 打赏
  • 举报
回复
为什么在不同平台就会不同呢。。。。?
高手!!

4,468

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧