assembly - LEA 执行有符号或无符号算术吗?

标签 assembly x86

我试图理解这条线是如何工作的:

lea (%eax, %eax, 4), %eax

所以它看起来基本上是这样说的:

%eax = 5* %eax

但是 LEA 是将其视为已签名还是未签名?

最佳答案

  1. LEA 并不是真正用于算术运算,而是计算内存操作的绝对地址。

  2. 有符号和无符号操作之间没有区别;在这种情况下,有符号运算和无符号运算的结果相同。

  3. 据我所知,不可能使用 LEA 指令将寄存器与负常数相乘

关于assembly - LEA 执行有符号或无符号算术吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22810096/

相关文章:

sorting - 打开文件,删除零,排序 - NASM

assembly - 如何将两个打包的 64 位四字加载到 128 位 xmm 寄存器中

assembly - 首次使用 AVX 256 位向量会减慢 128 位向量和 AVX 标量操作

assembly - 编码 x86 指令前缀字节的顺序

c++ - 为什么 std::fill(0) 比 std::fill(1) 慢?

assembly - 对于可变长度指令,计算机如何知道正在获取的指令的长度?

assembly - 构建最少的汇编代码会产生空的二进制文件

string - 连接寄存器中的字符串并打印它们(CPUID)

c - 整数加法中多余的中间存储指令

c - SIMD SSE2 __m128i包含4个int32_t如何快速找到每个大于或小于0的整数