当前位置: 技术问答>linux和unix
boot.s 和 head.s在linux和windows不同平台的编译差别
来源: 互联网 发布时间:2017-04-08
本文导语: 小弟正在读《linux内核完全剖析--0.12》其中有两段汇编程序,在不同平台下用相同汇编器编译程序有变化,求解: 不用全部代码: 1 boot.s程序中有一句: rep movw 呵呵,熟悉inter格式的不要骂我,在at&t或者as86中...
小弟正在读《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
这是不同的地方,小弟刚开始读内核,求解答。
不用全部代码:
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
这是不同的地方,小弟刚开始读内核,求解答。
|