![]() |
1
8
IA32支持8位、16位和32位条件相对跳转。x86\u 64支持8位和32位条件相对跳转。看到了吗 Intel's Software Developer's Manuals .
在实模式(和虚8086模式)下,条件跳转 是 限于+/-127的偏移量。 |
![]() |
2
0
另一个答案的一个小附录(在其他方面是正确的): 你的跳跃永远不会“超出范围”。特定的编码,以及使用32位、16位或8位偏移量进行任何相对跳转的决定,将由汇编程序进行。这通常称为“指令选择”。在任何情况下,给定“eip”的任何32位值,总有一些32位有符号位移,当添加到“eip”时,将等于任意32位地址。
8位和16位形式的“jump/cc”只允许您在指令流中使用更少的字节来完成这项工作。 |
![]() |
Ilya Loskutov · 无法将单词加载到寄存器中 2 年前 |
![]() |
Ari157 · x86_64 Linux程序集中的逻辑与实现 2 年前 |
![]() |
Arya · 汇编语言中的“标签”——操作码 2 年前 |
![]() |
S1mple · 通过gcc生成64位共享库时的“未定义的主引用” 2 年前 |
![]() |
R0M2 · 为什么“GCC”忽略汇编代码的-fno pic 3 年前 |
![]() |
Akagi Akira · 如何在gnu汇编程序中组装MIPS cpu 3 年前 |