汇编指令集锦

ARM汇编

http://infocenter.arm.com/help/basic/help.jsp?topic=/com.arm.doc.dui0204ic/Cjafgdih.html

 

#STMFD SP!,{R0-R7,LR}

 

对于这条指令伪代码的解释,大体是这样的:

1

2

3

4

5

6

7

8

9

10

11

SP = SP - 9×4;

 

address = SP;

 

fori = 0 to 7

 

Memory[address] = Ri;

 

address  = address + 4;

 

Memory[address] = LR;

  #同理ldmfd与之相反。

 

 

 

 

 

 

 #x86  w 2;l 4; q 8

 

 

andeq        r0, r0, r4, ror #20 
eq 是条件码,等于的意思,基于 Z 标志。
ror 是操作码,循环右移的意思, ror #20 意思是:循环右移20位
andeq        r0, r0, r4, ror #20   的意思是:
若为0(Z=1) 则: r4 循环右移20位(但不改变r4值),然后 r0 & r4 。最后 r0 = r0 & r4
也就是:
if (zero) {
    tmp = r4 >> 20; (循环)
   r0 = r0 & tmp;
}

BEQ 相等则跳转,B跳转,EQ相等(,前面有CMP)
LDRCC 小于则装载内存数据到寄存器,LDR装载,CC小于
STRCC BCC类似
<助记符>{<执行条件>}{S} <Rd>,<Rn>{,第2操作数}
有S则表示影响CPSR寄存器的值

条件码助记符:
EQ 相等                        //
结果为零,此时zero=1
NE 不相等                    //结果为1,zero=0
CS/HS 无符号数大于或等于
CC/LO 无符号数小于
MI 负数
PL 正数或零
VS 溢出
VC 没有溢出
HI 无符号数大于
LS 无符号数小于或等于
GE 有符号数大于或等于
LT 有符号数小于
GT 有符号数大于
LE 有符号数小于或等于
AL 无条件执行,跟不写一样

 

 

 

 

 

 

ARM 64汇编

 

sbfiz  x1, x1, #5, #32

这条指令最后是将X1 乘以0x20;即数组action偏移X1个的成员地址。这里为什么有个#5不太明白

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值