c - 获取 x86 当前指令的地址

标签 c linux assembly 64-bit x86

<分区>

我正在使用 x86(准确地说是 64 位)的 Linux。有没有办法可以获取当前指令的地址。其实我想写我自己的setjmp/longjmp的简化版本。 Here , R.. 发布了 longjmp 的简化版本。知道 setjmp 是如何实现的。一个简化版本,即不考虑异常和信号等...

最佳答案

我相信 64 位代码您可以简单地执行 lea rax, [rip]

32 位习惯用法是:

      call next
next: pop eax

关于c - 获取 x86 当前指令的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7932287/

相关文章:

c - 查找进程内存中未使用的内存

assembly - x86 程序集 - 比较 SF 和 OF 标志

assembly - 有没有办法在 x86 上使用 MMX/SSE 减去压缩的无符号双字,饱和?

c - 我的#include 文件损坏了吗?

c++ - 从内存中绘制位图

linux - 如何在 Linux 上安装和使用 GAS(GNU 编译器)?

linux - 测试文件中的每一行是否包含另一个文件中的多个字符串之一

assembly - 如何使用 NASM 组装 16 位 asm 代码,然后在 Linux 中对其进行调试,然后再在 DOSBox 中生成可执行文件

c - 我的输出答案有什么问题?

linux - 限制对端口 8000 的访问(使用 Apache)- Ubuntu 14.04 Lts