汇编和C实现 Hello, world! 之比较

来源:互联网 发布:java 多泛型参数 编辑:程序博客网 时间:2024/05/20 08:42

下列分别是三种实现的代码。

#hello_32.s.data                    msg : .string "Hello, world!\n" len = .-msg.text.global _start_start:movl $len, %edxmovl $msg, %ecxmovl $1, %ebxmovl $4, %eaxint  $0x80movl $0,%ebxmovl $1,%eaxint  $0x80
#hello_64.s.data                    msg : .string "Hello, world!\n" len = .-msg.text.code64.globl _start_start:movq $len, %rdxleaq msg, %rsimovq $1, %rdimovq $1, %raxsyscallmovq $60, %rax xorq %rdi, %rdisyscall
#include <stdio.h>int main(int argc, char **argv){    printf("Hello, world!\n");    return 0;}

编译后的文件大小如下:

-rwxr-xr-x. 1 xxx users 1603 Nov 10 10:38 hello_32
-rwxr-xr-x. 1 xxx users 1603 Nov 10 10:37 hello_64
-rwxr-xr-x. 1 xxx users 8505 Nov 10 10:59 hello_c

0 0
原创粉丝点击