Chinaunix
标题:
编写汇编程序编译与运行的问题 Mac OS X下
[打印本页]
作者:
vistar_w
时间:
2011-03-23 15:46
标题:
编写汇编程序编译与运行的问题 Mac OS X下
硬件环境:Intel core2 duo
软件环境:Mac OS 10.6.7
汇编编译环境:binutils 2.21 官方网站下载的for mac版本的.tar文件,手动编译安装
代码编辑器:Xcode 3.2.6 官方网站下载
测试代码(使用Linux下汇编程序的编写方式写了段测试代码):
test.s:
.section .text,
.globl _start
_start:
movl $1,%eax
movl %eax,%ebx
int $0x80
编译:as -o test.o test.s (没有报任何错误)
链接:ld -e _start -o test test.o(没有报任何错误)
运行:./test (出现bus error错误)
问1:这个错误应该怎么解决?是代码错误还是我所使用的环境有问题?
问2:linux上面的汇编程序与Mac OS X上面的汇编程序不能通用吗?如果不能都有哪些区别,怎么去正确的修改那些在Linux系统可以正确运行的程序,而在Mac OS X下面报错的程序?
问3:有没有教材或者视频教程之类的资源专门讲解在Mac OS X下汇编的资料?
望知情人士给予帮助,谢谢!
注:以上提到OS的都是指的汇编的程序代码不是汇编指令。
作者:
accessory
时间:
2011-03-25 00:11
应该是 INT 80 这个地方的问题。LINUX下系统调用是 INT 80, WINDOWS下是另外一个数字,MAC 估计也不一样。这个看各个OS怎么设计的了。
具体资料可以自己搜搜。。。我看到过讲MAC内核的英文书,不记得有没有专门讲汇编了。。。其实MAC 有个对应的开源版本,叫DARWIN OS, 还有一个OPEN DARWIN。 有个源码就可以自己慢慢看了。。。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2