【发布时间】:2014-07-06 05:04:48
【问题描述】:
我想获取 EAX/EBX/ESP/EIP 等中的值并将它们保存在 C 变量中。例如:
int cEax;
asm("mov cEax,%eax"); ...
【问题讨论】:
-
您需要提供更多详细信息:您使用的是什么编译器? 32位还是64位?最重要的是,您实际上想要完成什么?仅仅说“读取寄存器”并没有多大意义。查看您的“示例”,变量 cEax 当前可能位于 eax 寄存器中。让你的 asm 语句毫无意义。
-
我想用 32 位 gcc 获取寄存器和标志。我想要打印寄存器(esp,eip,eax,...)
-
asm("movl $0x12, %ecx"); asm("":"=c"(ecx));
-
@user3808900 如果您找到了完成此任务所需的正确技术,为什么不将您的知识写下来并作为自我回答发布呢?这是允许和欢迎的。
-
我要显示eip的值。这是我的问题。
标签: c gcc assembly x86 inline-assembly