You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ARM64汇编sxth指令用法疑问:adds指令中sxth #2的作用是什么?

ARM64中sxth #2在adds指令里的作用拆解

首先明确:这里的sxth是ARM64指令中的源操作数修饰符,不是单独执行的指令,它会先对w23做预处理,再参与加法运算。

1. sxth的核心含义

sxth是Sign-Extend Halfword的缩写,即有符号半字扩展:

  • 半字指16位数据,sxth会提取w23寄存器的低16位(bits 0-15),然后将这个16位有符号数扩展为32位——高位用符号位填充:如果原16位是正数(符号位为0),高位补0;如果是负数(符号位为1),高位补1。

2. #2的作用:左移操作

紧跟的#2表示将扩展后的32位结果再左移2位,等价于对扩展后的值乘以4。

3. 整条指令的完整执行流程

adds w21, w22, w23, sxth #2的执行步骤:

  • 第一步:取w23的低16位,做有符号扩展得到32位值;
  • 第二步:将扩展后的32位值左移2位;
  • 第三步:把w22的值与第二步的结果相加;
  • 第四步:将最终结果存入w21,同时更新处理器状态标志位(指令带s后缀adds)。

实例说明

假设w23的值为0xFFFF8000:

  • 低16位是0x8000(负数,符号位为1),扩展为32位后是0xFFFF8000;
  • 左移2位后得到0xFFFC0000;
  • 最终和w22的值相加,结果存入w21。

内容的提问来源于stack exchange,提问作者raff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 12:33:12