美文网首页
arm64汇编篇-常用指令篇

arm64汇编篇-常用指令篇

作者: 曾柏超 | 来源:发表于2018-11-02 09:11 被阅读11次

https://blog.csdn.net/asuno_1/article/details/80607263

CMP 

w0 , w1 CMP (compare)的意思是比较的意思 相当于将w0减去w1但是不会改变两个寄存器的值即两个寄存器不会变化,但是其结果会影响cpsr状态寄存器的标记值(nzcv)。

(把一个寄存器的内容和另一个寄存器的内容或立即数进行比较。但不存储结果,只是正确的更改标志。)
BL

跳转到标号处执行
B.LE loc_1000068E0 (标号)

小于判断LE是(less than or equal to)的意思当结果为小于等于的时候跳转执行loc_1000068E0(标号)地址pc寄存器的程序。(配合CMP做if判断)。
B.GE loc_1000068D0(标号)

大于等于判断(great than or equal to)原理同B.LE。
注:LE 和 GE 对应的高级代码是反向的即汇编是大于等于那么实际上高级代码是小于两者互补。

B.GT  

比较结果是大于(greater than),执行标号,否则不跳转。
B.LT

比较结果是大于(less than),执行标号,否则不跳转
B.EQ

比较结果是等于(equal to),执行标号,否则不跳转
B.HI

比较结果是无符号大于,执行标号,否则不跳转
adrp x0, 1 计算指定数据地址到当前pc值的相对偏移。操作步骤如下

  1. 将1的值,左移12位 1 0000 0000 0000 == 0x1000

2.将PC寄存器的低12位清零 0x1045228b0 ==> 0x104522000

3.将将1 和 2 的结果相加 给 X0 寄存器
注:地址为pc寄存器左边的地址,adrp是找出要获取参数的地址范围,然后下个pc寄存器执行的代码会定位到准确的物理地址。(一般找到范围后下一句会add 后三位的具体地址从而确定具体值)。

LDRSW x9 ,[x8 ,x9 ,lsl #2] 为将以x8寄存器为基地址加上x9寄存器向左偏移两个单位的值后取其地址的值给x9寄存器。

Load Signed Word (extended): loads a word from memory addressed by addr, then sign-extends it intoXt.

读取内存地址的值给寄存器。

相关文章

  • ARM 64 常见汇编指令

    ARM64常用的汇编指令 运算指令 程序跳转指令

  • arm64汇编篇-常用指令篇

    本篇主要记载汇编语言中常用的指令及其代表的含义,实时不断跟新。 CMP w0 , w1 CMP (compar...

  • arm64汇编篇-常用指令篇

    https://blog.csdn.net/asuno_1/article/details/80607263 w0...

  • IOS arm64常用的汇编

    导论 生成汇编文件 寄存器 arm64 汇编条件域 arm64 汇编指令 总结 1. 生成汇编文件 2. 寄存器 ...

  • ARM汇编指令

    关于arm64汇编指令,如下图 汇编指令可以汇总如下:(后续会更新) 关于内存读写指令 注意:读/写 数据是都是往...

  • 入门二

    [转]ARM64 汇编 寄存器 汇编指令栈栗子 逆向工程绕不过的一部分就是汇编指令的分析。我们iPhone里面用到...

  • ARM64汇编入门 - 汇编基础

    ARM64汇编入门 - 汇编基础ARM64汇编入门 - 汇编基础

  • ARM64汇编学习_2_寄存器、常用指令、堆栈平衡

    1. 寄存器; 2. 常用指令; 3. 函数的堆栈; PS:学习ARM64汇编时、一定要用IPhone5S及以上的...

  • ARM64 学习

    iOS汇编 真机 arm64汇编,GNU 模拟器 x86, AT&T 汇编 寄存器 指令 堆栈 通用寄存器 64b...

  • 2.8 常用的汇编指令

    2.8 常用的汇编指令 本节必须掌握的知识点: 汇编指令 多动手实验,知道每个指令的功能 在此节之前汇编课程主要讲...

网友评论

      本文标题:arm64汇编篇-常用指令篇

      本文链接:https://www.haomeiwen.com/subject/nrlqxqtx.html