求教下各位大侠,以下的ARM汇编指令表示啥意识?
strlw r0,lr,abort=20f
ldrlb r1,r3,ne,abort=20f
strlb r0,r3,ne,abort=20f
1:strlw是表示什么?str{条件},lw是不是这个条件,表示的是什么条件,还是整个是一个指令?
2:ldrlb是表示什么?ldr{条件},lb是不是这个条件,表示的是什么条件,还是整个是一个指令?
3:ne,cs这些表示的是什么玩意?
4:abort=20f这个又表示的是啥玩意?
求大神详解啊,万分感谢!
------解决方案--------------------------------------------------------
用得哪个编译器啊????是不是做的特定扩展?
帮不了你了
------解决方案--------------------------------------------------------
使用objdump反编译,另个把上下10句贴出来看看……
很怀疑你说的那三条指令只是三个常量数值。
由于arm对于立即数据的限制,编译器在处理常量数值的时候通常是将其统一放在该函数的未端,然后在函数正文中通过“ldr Rx, pc+offset”的形式来加载常量数值。
------解决方案--------------------------------------------------------
strlw r0,lr,abort=20f
ldrlb r1,r3,ne,abort=20f
strlb r0,r3,ne,abort=20f
1:strlw是表示什么?str{条件},lw是不是这个条件,表示的是什么条件,还是整个是一个指令?
//对照源码看啥意思啊, 看register执行每一步是如何变化的
2:ldrlb是表示什么?ldr{条件},lb是不是这个条件,表示的是什么条件,还是整个是一个指令?
//b应该是字节的意思,
3:ne,cs这些表示的是什么玩意?
//CS是状态寄存器CPSR上的位
4:abort=20f这个又表示的是啥玩意?
//给这个标号赋值吧
------解决方案--------------------------------------------------------
说实在我不记得有这3条指令..你可以下一个arm11的datasheet看看,很详细
------解决方案--------------------------------------------------------
我认为 arm中没有ldrlb strlw这样的指令的,倒是有strw strb ldrb .(难道是thumb指令??)
我怀疑 你的是strlw等这些是定义的一个宏, 你可以看下你的这个是不是包含了哪个文件, strlw这样用来根据arm版本的不同选择不同的指令。
强烈感觉是定义的宏。呵呵