[26/02/2017]

如何编写,生成,执行一段汇编代码

  1. 使用vi hello.s新建hello.s文件【1,3】,输入

    #hello.s
    .data                    # 数据段声明
            msg : .string "Hello, world!\\n" # 要输出的字符串
            len = . - msg                   # 字串长度
    .text                    # 代码段声明
    .global _start           # 指定入口函数
    
    _start:                  # 在屏幕上显示一个字符串
            movl $len, %edx  # 参数三:字符串长度
            movl $msg, %ecx  # 参数二:要显示的字符串
            movl $1, %ebx    # 参数一:文件描述符(stdout)
            movl $4, %eax    # 系统调用号(sys_write)
            int  $0x80       # 调用内核功能
    
                             # 退出程序
            movl $0,%ebx     # 参数一:退出代码
            movl $1,%eax     # 系统调用号(sys_exit)
            int  $0x80       # 调用内核功能
    
    copy
  2. 生成可执行文件

    1. 汇编器: as -o hello.o hello.s
    2. 链接器: ld -s -o hello hello.o
  3. 执行文件【2】

    1. ./hello 实验楼

如何将C转换为汇编

  1. 使用vi main.c新建main.c文件【4】, 输入

    copy

    实验楼

  2. 转换为汇编

    1. gcc –S –o main.s main.c -m32

    2. 查看生成的main.s 实验楼 实验楼 实验楼 实验楼

参考

  1. Linux 汇编语言开发指南
  2. linux下编译,链接,运行,汇编程序
  3. GitHub MD Syntax Highlighting Language Support
  4. Linux内核分析-通过汇编一个简单的C程序,分析汇编代码理解计算机是如何工作的
最新评论
暂无评论~