码迷,mamicode.com
首页 > 系统相关 > 详细

mac下汇编hello world

时间:2015-11-21 15:53:29      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:

来自:http://snipplr.com/view/29150

; Hello World in assembly for mac
; nasm -f macho hello.asm
; ld -e _start -o hello hello.o
;
section     .text
 global _start                       ;must be declared for linker (ld)

_syscall:           
     int     0x80            ;system call
     ret

_start:                         ;tell linker entry point

     push    dword len       ;message length
     push    dword msg       ;message to write
     push    dword 1         ;file descriptor (stdout)
     mov     eax,0x4         ;system call number (sys_write)
     call    _syscall        ;call kernel

                             ;the alternate way to call kernel:
                             ;push   eax
                             ;call   7:0

     add     esp,12          ;clean stack (3 arguments * 4)

     push    dword 0         ;exit code
     mov     eax,0x1         ;system call number (sys_exit)
     call    _syscall        ;call kernel

                             ;we do not return from sys_exit,
                             ;there‘s no need to clean stack
section .data

msg     db      "Hello, world!",0xa     ;our dear string
len     equ     $ - msg                 ;length of our dear string

  

mac下汇编hello world

标签:

原文地址:http://www.cnblogs.com/yaohj/p/4983773.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!