相关疑难解决方法(0)

汇编:为什么跳转到通过ret返回的标签会导致分段错误?

Linux程序集教程说明:

有一件非常重要的事情需要记住:如果您打算从程序返回(使用RET指令),请不要跳转到它!就像"从来没有!" 这样做会导致Linux上的分段错误(这是好的 - 所有程序都会终止),但在DOS中,它可能会因各种程度的可怕而在你脸上爆炸.

但我无法理解为什么它会导致分段错误.听起来就像从函数返回一样.

我有一种情况需要实现逻辑"如果X发生,请调用程序A.否则,调用程序B." 除了袋鼠编织意大利面条代码之外还有其他方式吗?

linux assembly nasm yasm

5
推荐指数
1
解决办法
1609
查看次数

如果汇编程序中的CALLed代码块中没有return语句,该怎么办?

如果我说'打电话'而不是跳?会怎么样?由于没有写入返回语句,控制权只是转移到下面的下一行,还是在调用后仍然返回到该行?

start:
     mov $0, %eax
     jmp two
one:
     mov $1, %eax
two:
     cmp %eax, $1
     call one
     mov $10, %eax
Run Code Online (Sandbox Code Playgroud)

x86 assembly

2
推荐指数
2
解决办法
1331
查看次数

8086 汇编中的 JMP 与 CALL

我可以像使用JMPand那样使用andRET从标签跳回吗?CALLRET

x86 assembly x86-16

0
推荐指数
1
解决办法
6344
查看次数

标签 统计

assembly ×3

x86 ×2

linux ×1

nasm ×1

x86-16 ×1

yasm ×1