汇编ldrsw

当我们写一个连续switch(个数大于三个)判断时,查看汇编指令时,会出现

    0x104fcd8bc <+68>:  ldrsw  x10, [x8, x11, lsl #2]

那么ldrw指令是干嘛的,我来讲解一下,如果有错误,请指明谢谢!
x8 + x11 左移2位赋值给x10 = x8 + 8 (因为x11里面存的2,然后向左移2位就是8)

register read x8
      x8 = 0x0000000104fcd938  aaaaaaaaa`add + 192
x 0x0000000104fcd938
0x104fcd938: 9c ff ff ff a8 ff ff ff b4 ff ff ff c0 ff ff ff  ................
0x104fcd948: cc ff ff ff d8 ff ff ff e4 ff ff ff f0 ff ff ff  ................
register read x11
     x11 = 0x0000000000000002

x11 左移二位为8
x10 = x8 + 8 (即:ff ff ff 9c + 8 ----> ff ff ff b4)
x10 = ff ff ff b4

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 本篇文章主要讲解👇 状态寄存器 判断、选择和循环 一、状态寄存器(CPSR) 什么是状态寄存器?👇 CPU内...
    深圳_你要的昵称阅读 296评论 0 1
  • 寄存器 内部部件之间由总线连接 CPU除了有控制器、运算器还有寄存器。其中寄存器的作用就是进行数据的临时存储。 C...
    Mjs阅读 736评论 0 1
  • ADRP指令 内存分为以下几大区:代码区:存放代码的,是可读可执行的。栈区:存放参数、局部变量、临时数据的,是可读...
    卡布奇诺_95d2阅读 2,024评论 0 3
  •   我们都知道switch是一个选择分支结构,其功能和if...else是一样的,那么他们两个有什么区别呢?我们什...
    spyn_n阅读 445评论 0 1
  • 内存分区 逻辑上划分(编译器划分) 代码区:存放代码,可读可执行 栈区:参数、局部变量、临时数据。可短可写 堆区:...
    HotPotCat阅读 1,557评论 1 8