I_am_boy 2019-07-31 22:24 采纳率: 0%
浏览 309

arm汇编如何引入二进制文件

如题,我想用汇编引入二进制汉字库文件。
使用绝对路径可以,但是相对路径却怎么都无法找到该文件,求大神讲解。
图片说明
图中绝对路径没有问题,但是相对路径不知道怎么写,直接写文件名报错。
.incbin "hzk16" 这样会报错
hzk16和该汇编文件在同一文件夹中

  • 写回答

1条回答

  • 忘知一切 2019-08-01 19:47
    关注

    写好汇编源文件1.s                                                                                                                                                  
    $vi 1.s
    .global add @ give the symbol add external linkage
    add:
    ADD r0, r0, r1 @ add input arguments
    MOV pc, lr @ return from subroutine
    @ end of program
    其中这只是表示生成一个可供C语言调用的函数接口,本身不带main入口,只能生成.o文件

    $arm-linux-gcc -c -o 1.o 1.s
    得到1.o这个文件

    $arm-linux-objdump -x -d -S 1.o  反汇编
    1.o:     file format elf32-littlearm
    1.o
    architecture: arm, flags 0x00000010:
    HAS_SYMS
    start address 0x00000000
    private flags = 0: [APCS-32] [FPA float format]

    Sections:
    Idx Name          Size      VMA       LMA       File off  Algn
      0 .text         00000008  00000000  00000000  00000034  2**0
                      CONTENTS, ALLOC, LOAD, READONLY, CODE
      1 .data         00000000  00000000  00000000  0000003c  2**0
                      CONTENTS, ALLOC, LOAD, DATA
      2 .bss          00000000  00000000  00000000  0000003c  2**0
                      ALLOC
    SYMBOL TABLE:
    00000000 l    d  .text  00000000 .text
    00000000 l    d  .data  00000000 .data
    00000000 l    d  .bss   00000000 .bss
    00000000 g       .text  00000000 add

    Disassembly of section .text:

    00000000 :
       0:   e0800001    add r0, r0, r1
       4:   e1a0f00e    mov pc, lr

    然后把提取1.o这个文件的.text段,
    $arm-linux-objcopy -O binary -j .text 1.o 1.bin

     

    $ls -la
    -rw-r--r-- 1 wyc wyc     8 2010-07-02 15:00 1.bin
    -rw-r--r-- 1 wyc wyc   488 2010-07-02 14:54 1.o
    -rw-r--r-- 1 wyc wyc   146 2010-07-02 14:49 1.s

    最后提出来的1.bin只有8个字节,是由于text段中仅包含了两条指令。
    $od -x 1.bin
    0000000 0001 e080 f00e e1a0
    0000010

       0:   e0800001    add r0, r0, r1
       4:   e1a0f00e    mov pc, lr

    评论

报告相同问题?

悬赏问题

  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 关于#python#的问题:自动化测试