首页 > 系统服务 > 详细

mac下汇编hello world

时间:2015-11-21 15:52:11      阅读:351      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!