AT&T Assembly for Linux and Mac (sys_write)

Write() in C : (sys_write.c)

#include <stdio.h>

int main(void)
{
    printf("Hello Landpack\n");
    return 0;
}

 

 

Write() in AT&T for Linux:(sys_write.s)

.section .data

_data:  .ascii "Hello Landpack\n"

        len = .-_data

.section .text

.globl  _start

_start:

        movl    $4,     %eax    #for write
        movl    $_data, %ecx    #The address of data
        movl    $len,   %edx    #The len of string
        movl    $0,     %ebx    #exit with 0
        int     $0x80

        movl    $1,     %eax    #sys_exit
        movl    $0,     %ebx    #exit with 0
        int     $0x80

 

 

Write() in AT&T for Mac: (sys_write.s):

.globl _main

_main:

    pushq   %rbp
    #movq   %rsp,   %rbp
    leaq    _data(%rip),%rdi
    callq   _puts
    xorl    %eax,   %eax
    popq    %rbp
    ret 

.section    _TEXT,_cstring,cstring_literals

_data:

    .ascii  "Hello Landpack"

posted @ 2015-04-15 22:11  Landpack  阅读(402)  评论(0编辑  收藏  举报