assembly - 汇编编程中跳转语句的区别

标签 assembly x86

您如何决定何时使用哪个跳转语句...JG JNLE JNC 等语句可以完成相同的工作,您如何区分它们?

最佳答案

你提到的跳转都是条件码值的跳转。

JG 和 JNLE 是相同的:它们具有相同的操作码并执行相同的操作。一种是“大于则跳转”,另一种是“不小于等于则跳转”。想一想。这些是有符号分支,这意味着它们在确定是否分支时会考虑符号标志。

JNC 的意思是“如果没有进位则跳转”。如果没有设置进位标志,它将跳转。进位通常用于检测算术溢出,例如添加 2 个无符号整数时。

关于assembly - 汇编编程中跳转语句的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2355915/

相关文章:

multithreading - x86 中非读和非写指令重新排序有关系吗?

c - C 编译器如何在 ASM 中处理函数的结构返回值

linux - 将参数传递给 execve 系统调用的最简单方法

c - 使用 rdmsr/rdpmc 提高分支预测精度

c - 什么时候应该在汇编语言中设置进位标志

c++ - 使用valgrind获取clock_gettime的汇编代码?

c - 函数指针中的最低有效位

macos - 如何让cgdb显示汇编代码?

c - 如何根据架构一般指定 AX、EAX 或 RAX?

assembly - 将一个字广播到 xmm 寄存器