- 博客(6)
- 资源 (3)
- 收藏
- 关注
原创 屌丝学arm汇编-06-thumb模式下ldr和bl一起使用需要注意的
1.arm在thumb模式下,pc = pc + 4;但是bl指令在thumb的指令为4byte,这个是个特殊情况,如果我在bl指令之前获取pc的指针,那么其值是否会仍然遵守pc = pc + 4?2.bl指令执行跳转的时候,lr = 下条指令 + 1,那么我直接ldr 一个 指令标号和数据段的标号,是否仍然是这样?演示代码地址:http://download.csdn.net/detai
2016-09-04 23:25:41 765
原创 屌丝学arm汇编-05-编译器如何利用pc指针生成PIC(位置无关码)
首先来2个问题1.编译器如何处理伪指令,例如ldr。首先伪指令不是真实的指令,这样说有些模糊。伪指令的执行者不是arm cpu,而是编译器。这个描述准确点,但是编译器只是把伪指令做了转化,转化成arm指令,最终还是有arm cpu来执行。在C语言中 #define TEST (5 - 3) 这里(5- 3)会由编译器计算好,将结果放到最终生成的执行程序中,一般在code的.
2016-09-03 12:05:40 1037
原创 屌丝学arm汇编-03-arm模式和cpsr
1.ARM有7种模式和37个寄存器以上图标黄色部分为共用的部分。USR和SYS共用同一个寄存器集。(1)共同寄存器集合:R0-R7,PC,CPSR(2)除了USR/SYSTEM其他模式具有自己的 SP,LR和SPSR,用来备份当前模式的堆栈,程序状态,及CPSR。2.CPSR的解析 CPSR由上可以分为4个域:F,S,X,C,其中F,
2016-05-04 14:17:26 1113
原创 屌丝学arm汇编-02-冒泡排序
接触arm汇编有了一段时间了,综合一下,打算用arm汇编写一个排序算法,贴下代码:count equ 10sploc equ 0x9000 area example13,code,readonly entrystart mov r5,#count sub r5,r5,#1 adr r0,buf mov r1,#0 mov r3,#0for_loop1 cmp r3,r
2016-05-04 10:23:37 3016
原创 屌丝学arm汇编-01-TST指令
一.指令说明 格式:TST{条件}{P} , 描述:TST 位测试指令说明:TST 来检查是否设置了特定的位。操作数 1 是要测试的数据字而操作数 2 是一个位掩码,TST指令将操作数1与操作数2做逻辑与运算,和ANDS的区别就是不保存结果。TST会改变CPSR的条件标志位。这个指令通常与EQ,NE这些条件码来组合使用,但是使用过程中需要注意 :与掩码逻辑与运算之后,全
2016-04-15 14:15:10 16343
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人