arm的bin二进制代码分析

本文详细分析了ARM架构下bin文件的机器指令,通过实例展示了如何在ADS环境下进行代码反汇编。讨论了MOV指令、BL调用子程序指令的机器码,并探讨了在不同情况下的指令定位和参数设置,如导入函数、内存操作及SUBROUTINE中的参数传递方式。
摘要由CSDN通过智能技术生成

bin文件中,就是一条条的机器指令,每条指令4个字节。

ADS中打开一个.s文件,选择project->disassemble

可以看到汇编的机器码

汇编代码如下(ADS中的一个例程/ARM/ADSv1_2/Examples/asm/armex.s):

        AREA ARMex, CODE, READONLY  ; name this block of code

        ENTRY                       ; mark first instruction

                                    ; to execute

start

        MOV     r0, #10             ; Set up parameters

        MOV     r1, #3

        ADD     r0, r0, r1          ; r0 = r0 + r1

 

stop

        MOV     r0, #0x18           ; angel_SWIreason_ReportException

        LDR     r1, =0x20026        ; ADP_Stopped_ApplicationExit

        SWI     0x123456            ; ARM semihosting SWI

 

        END                         ; Mark end of file

 

执行project->disassemble后:

** Section #1 'ARMex' (SHT_PROGBITS) [SHF_ALLOC + SHF_EXECINSTR + SHF_ENTRYSECT]

    Size   : 28 bytes (alignment 4)

 

    start

    $a

    ARMex

        0x00000000:    e3a0000a    ....    MOV      r0,#0xa

        0x00000004:    e3a01003    ....    MOV      r1,#3

        0x00000008:    e0800001    ....    ADD      r0,r0,r1

    stop

        0x0000000c:    e3a00018    ....    MOV      r0,#0x18

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值