zoukankan      html  css  js  c++  java
  • ARM汇编Hello,World

    1. 编译运行环境见

    http://www.cnblogs.com/linucos/archive/2013/03/01/2938517.htm

    2. 汇编例子

      .data  
      msg:  .asciz  "hello, world\n"  
     
      .text  
      .global main                                                                                                                       
      main:  
      push    {r0,r1,r2,lr}
      ldr     r1, =msg         @ address  
      mov     r0, #1          @ stdout  
      mov     r2, #13         @ length  
      swi     #0x900004       @ sys_write  
      pop     {r0,r1,r2,pc}

    3. 编译运行

    arm-linux-gnueabi-gcc asmhello.s -o asmhello

    qemu上运行./asmhello 即可

    4. C例子

     #include <stdio.h>
     
      int main(void)
      {
          fprintf(stderr, "%s\n", __FILE__);                                                                                             
          return 0;
      }

    5. 编译运行

    arm-linux-gnueabi-gcc  hello.c -o hello

    6. C例子反汇编

    arm-linux-gnueabi-objdump -d hello > hello.dis

    发现:main函数返回用 pop {r7,pc}实际对应的是push {r7,lr}

  • 相关阅读:
    AJAX请求MVC控制器跨域头问题
    HTTP 错误500.19 -Internal Server Error 错误代码 0x80070021
    C# 同一时间批量生成订单号不重复
    Unity书籍下载地址
    几种常见的设计模式
    C# web api 对象与JSON互转
    自动按参数首字母排序参数
    C# 3DES加密 解密
    C#大量数据导出Excel
    判断对象是数组
  • 原文地址:https://www.cnblogs.com/linucos/p/2963311.html
Copyright © 2011-2022 走看看