2011-11-11 4 views
2
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 

拳質問:私は、リンカを使用する場合、私はそれを避けることができるか、「10.7を想定し、次の特定ではない-macosx_version_min」この警告を取得しますか?「セグメンテーションフォールト:11」組立誤差

2番目の質問:実行ファイルを実行するまではうまくいっていますが、このエラーは「セグメンテーションフォールト:11」です それはどういう意味ですか?このコードで何が問題になっていますか?

追加情報:Intel Core 2 Duoを搭載したMac OS Xでnasmを使用しています。今日はアセンブリの最初のレッスンでbennを持っています。

+2

1. -macosx_version_minを指定するのはどうですか? 2a。セグメンテーションフォールトは、アクセス権のないメモリにアクセスしようとしたことを意味します。 2b。デバッガの下でプログラムを実行して、セグメンテーションフォルトが発生する場所とアクセスしようとしているメモリを確認します。 –

+1

'int 0x80'に続くものは?それらが成功すれば(そしてそれは必要なように見える)、その後何が起こるべきか? – wallyk

+3

これは32ビットのLinuxスタイルのシステムコールのようです。私はmac osxが全く異なる方法でシステムコールを実行していると思います。 – user786653

答えて

0

Linuxスタイルのsyscallは、Mac OS Xでは動作しません(user786653に記載されています)。

関連する問題