最奇怪的错误输出:
#include <iostream>
int main(int arg, char **LOC[])
{
asm
(
"mov eax, 0CF;"
"pusha;"
);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它抱怨,这是GCC的错误:
ts:汇编程序消息:
ts:31:错误:'mov'的内存引用太多
您收到此错误,因为您的程序集格式错误.寄存器访问类似于%eax,$用于立即操作数.此外,GCC默认情况下(参见DanielKO的评论)使用AT&T语法,其右侧是目的地,左侧是源.这是你想要的?
mov $0xcf, %eax
Run Code Online (Sandbox Code Playgroud)
此外,您pusha的不平衡,即您在从函数返回之前没有正确清理堆栈.很高兴知道你的总体目标是什么,因为现在你似乎只复制并粘贴了一小部分来源.
| 归档时间: |
|
| 查看次数: |
304 次 |
| 最近记录: |