ARM 汇编指令

ARM64

寄存器

  • x0 - x30 共31个通用寄存器,均为64bit,w0 - w30用来访问低32bit;
  • x29:用来充当FP,intel是ebp;
  • x30:充当lr寄存器,用来保存函数返回后的下一条执行地址;
  • SP:保存栈顶指针,使用 SP/WSP来进行对SP寄存器的访问,64bit,intel是esp;
  • PC:程序计数器,俗称PC指针,总是指向即将要执行的下一条指令,在arm64中,软件是不能改写PC寄存器的,64bit
  • CPSR:状态寄存器,64bit;

常规指令

ARM64指令长度是32bit。

  • MOV X1,X0 ;将寄存器X0的值传送到寄存器X1
  • ADD X0,X1,X2 ;寄存器X1和X2的值相加后传送到X0
  • SUB X0,X1,X2 ;寄存器X1和X2的值相减后传送到X0
  • AND X0,X0,#0xF ; X0的值与0xF相位与后的值传送到X0
  • ORR X0,X0,#9 ; X0的值与9相位或后的值传送到X0
  • EOR X0,X0,#0xF ; X0的值与0xF相异或后的值传送到X0
  • LDR X5,[X6,#0x08] ;X6寄存器加0x08的和的地址值内的数据传送到X5
    LDR X0, [X1] Load from the address in X1
    LDR X0, [X1, #8] Load from address X1 + 8
    LDR X0, [X1, X2] Load from address X1 + X2
    LDR X0, [X1, X2, LSL, #3] Load from address X1 + (X2 << 3)
    LDR X0, [X1, W2, SXTW] Load from address X1 + sign extend(W2)
    LDR X0, [X1, W2, SXTW, #3] Load from address X1 + (sign extend(W2) << 3)
  • STR X0, [SP, #0x8] ;X0寄存器的数据传送到SP+0x8地址值指向的存储空间
  • STP x29, x30, [sp, #0x10] ;入栈指令,一
  • 6
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值