assembly - JS 在 Assembly x86 中做什么?

标签 assembly x86

cmp %al, %cl
js x

我对 js(跳上标志)在做什么感到困惑。是说如果 al 为正,cl 为负,反之亦然,则跳转?

另外,如果 %cl 为 0 或者里面什么都没有,会发生什么?

谢谢!

最佳答案

JS如果设置了符号标志(通过较早的指令),则将跳转。 CMP将始终通过执行减法来修改标志,在这种情况下 %al - %cl . (假设 Intel 语法,而不是 AT&T)。

由于指令的长度,符号将是表达式 %al-%cl 的第 7 位(并被丢弃)。

如果 %cl == 0,则临时值将是 %al,并且符号将是寄存器 %al 的符号。因此,如果 %al 为负,则进行跳转。

这是一个 reference对于所有条件跳转。

关于assembly - JS 在 Assembly x86 中做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21872334/

相关文章:

Linux x86-64 Hello World 和参数的注册用法

assembly - 在 OoO 处理器中分别执行相同指令的操作

loops - 如何复制值 - x86 NASM 程序集

optimization - 将 3D 数学转换为 SSE 或其他 SIMD 的速度有多少?

c# - 为什么 C# 的速度是 C++ 的两倍,即使生成的机器代码几乎相同?

linux - 如何在sys_create中设置权限

c++ - main in反汇编后的说明

assembly - 浮点按位运算的用处

c - 优化简单的模具操作,将变量保存在寄存器中

linux nasm 程序集打印从零到 100 的所有数字