
arm汇编专辑
半瓶醋的历史
这个作者很懒,什么都没留下…
展开
-
keil工具中fromelf生成汇编代码lst文件(armcc)
fromelf --bin .\build\keil\Obj\bf0_ap.axf --output build\bf0_ap.binfromelf --i32 .\build\keil\Obj\bf0_ap.axf --output build\bf0_ap.hexfromelf --text -c .\build\keil\Obj\bf0_ap.axf 1>build\keil\Obj\bf0_ap.lst原创 2021-09-26 17:34:08 · 1456 阅读 · 0 评论 -
arm内核出现错误,打印16个内核寄存器的状态
typedef struct HardFault_stack{ uint32_t r0; ///< R0 register. uint32_t r1; ///< R1 register. uint32_t r2; ///< R2 register. uint32_t r3; ///< R3 register. uint32_t r12; ///< R12 register. uint32_t lr; ///&...原创 2021-03-05 09:42:12 · 592 阅读 · 1 评论 -
arm汇编指令之指令后面的条件探究
格式可以是如下这种的:MRS{cond} Rd, spec_reg条件执行:大部分处理器指令可以根据操作指令码决定是否更新APSR寄存器中的条件标记,有些指令需要更新全部的标记位,有些指令只更新某一些位。如果标记位没有被更新,起始值将得到保护,具体可参考标记位寄存器APSR的详细描述,你可以根据条件标记位是否置决定要不要执行某条指令,以下是可以影响条件标记位的一些后缀:可以参考如下例程:演示如何使用条件指令来查找一个数的绝对值MOVS R0, R1;原创 2021-03-02 15:03:42 · 648 阅读 · 0 评论 -
arm汇编指令探究之LDR和STR指令
LDR指令LDR指令的格式:LDR{条件} 目的寄存器 <存储器地址>作用:将 存储器地址 所指地址处连续的4个字节(1个字)的数据传送到目的寄存器中。LDR指令的寻址方式比较灵活,实例如下:LDR R0,[R1];将存储器地址为R1的字数据读入寄存器R0。LDR R0,[R1,R2]...原创 2021-02-26 14:22:37 · 3138 阅读 · 1 评论 -
arm汇编指令探究之STMFD和LDMIA指令的使用
原创 2021-02-26 14:07:39 · 1797 阅读 · 0 评论 -
arm汇编指令探究之 ldmia
ldmia r0!, {r4-r11, r14} 的意思是LDMIA 中的 I 是 increase 的缩写,A 是 after 的缩写,LD加载(load)的意思R0后面的感叹号“!表示会自动调节 R0里面的指针所以整句话意思是任务栈R0的存储地址由低到高,将R0存储地址里面的内容手动加载到 CPU 寄存器 R0,R4-R12里还有一种是STMDB R1!, {R0,R4-R12} 这就和上面反过来了,ST是存储(store)的意思,D是decrease的意思,B是before的意思,整句话就.原创 2021-02-25 20:08:52 · 13128 阅读 · 3 评论 -
arm汇编指令探究之 B BL BX BLX
Condition flagsThese instructions do not change the flags.ExamplesB loopA ; Branch to loopABLE ng ; Conditionally branch to label ngB.W target ; Branch to target within 16MB rangeBEQ target ; Conditionally branch to targetBEQ.W target ; Cond...原创 2021-02-25 17:08:54 · 911 阅读 · 0 评论 -
arm汇编指令探究之 IT 指令
ITTE NE ; Next 3 instructions are conditional这句话的意思是接下来三条指令都是带条件的原创 2021-02-25 11:32:59 · 2449 阅读 · 1 评论