Assembly &引用;分段错误:11“;装配误差

Assembly &引用;分段错误:11“;装配误差,assembly,x86,Assembly,X86,第一个问题:当我使用链接器时,我收到这个警告“-macosx_version_min未指定,假设为10.7”,我如何避免它 第二个问题:在我运行可执行文件之前,一切都很顺利,我得到这个错误“分段错误:11” 这是什么意思?这个代码有什么问题 附加信息:我在Mac OS X下使用nasm,有一个Intel Core 2 Duo,今天我有benn在我的第一节汇编课上,所以我对这种语言是新手。正如user786653所指出的,Linux风格的系统调用在Mac OS X上不起作用。Linux风格的系统调

第一个问题:当我使用链接器时,我收到这个警告“-macosx_version_min未指定,假设为10.7”,我如何避免它

第二个问题:在我运行可执行文件之前,一切都很顺利,我得到这个错误“分段错误:11” 这是什么意思?这个代码有什么问题


附加信息:我在Mac OS X下使用nasm,有一个Intel Core 2 Duo,今天我有benn在我的第一节汇编课上,所以我对这种语言是新手。

正如user786653所指出的,Linux风格的系统调用在Mac OS X上不起作用。

Linux风格的系统调用在Mac OS X上不起作用,正如user786653所指出的。

1。指定-macosx\u version\u min如何?2a。分段错误表示您试图访问您无权访问的内存。2b。在调试器下运行该程序,查看分段错误发生的位置以及您试图访问的内存。接下来是什么
int 0x80
?如果这些成功了(看起来他们应该成功),那么接下来会发生什么呢?这看起来像是32位linux风格的系统调用。我认为MacOSX使用了一种完全不同的方式来执行系统调用。指定-macosx\u version\u min如何?2a。分段错误表示您试图访问您无权访问的内存。2b。在调试器下运行该程序,查看分段错误发生的位置以及您试图访问的内存。接下来是什么
int 0x80
?如果这些成功了(看起来他们应该成功),那么接下来会发生什么呢?这看起来像是32位linux风格的系统调用。我认为MacOSX使用了一种完全不同的方式来执行系统调用。
section .data
        msg: db 'Hello World di Simona',10  ;the message to write
        len: equ $ - msg                    ;length of the message

section .text
        global _start
        _start:
                mov edx, len                ;save the length
                mov ecx, msg                ;save the message to display
                mov ebx, 1                  ;prepare for the system call
                mov eax, 4
                int 0x80                    ;sytem call