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}

  • 相关阅读:
    HDU 5963 朋友
    BZOJ 4805 欧拉函数求和
    BZOJ 2153 设计铁路
    BZOJ 2631 tree
    BZOJ 4804 欧拉心算
    BZOJ 4806 炮
    BZOJ 3774 最优选择
    BZOJ 4800 Ice Hockey World Championship
    BZOJ 3894 文理分科
    北方大学多校联合训练第十一场E:Modules
  • 原文地址:https://www.cnblogs.com/linucos/p/2963311.html
Copyright © 2011-2022 走看看