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"

技术分享

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。