C “mov”的内存引用过多
我已经看过了所有关于如何解决这个问题的建议线索,但我找不到一条与我的错误相匹配的线索 当我编译时,我得到了太多的“mov”的内存引用,即使我把它们全部去掉C “mov”的内存引用过多,c,assembly,x86,mov,C,Assembly,X86,Mov,我已经看过了所有关于如何解决这个问题的建议线索,但我找不到一条与我的错误相匹配的线索 当我编译时,我得到了太多的“mov”的内存引用,即使我把它们全部去掉 __asm__( "mov 0x8(%ebp), %edx;" "mov 0x8(%edx), %edx;" "cmp $0x0, %edx;" "je notFound;" "sub $0x10, %esp;" "mo
__asm__(
"mov 0x8(%ebp), %edx;"
"mov 0x8(%edx), %edx;"
"cmp $0x0, %edx;"
"je notFound;"
"sub $0x10, %esp;"
"movl 0xc(%ebp), (%esp);"
"movl $0x24, 0x8(%esp);"
"mainloop: "
"movl %edx, 0x4(%esp);"
"call _memcmp;"
"cmp $0xffffffff, %eax;"
"je leftBranch;"
"cmp $0x1, %eax;"
"je rightBranch;"
"jne found;"
"leftBranch: "
"mov 0xc(%edx), %edx;"
"cmp $0x0, %edx;"
"je notFound;"
"jne mainloop;"
"rightBranch: "
"mov 0x10(%edx), %edx;"
"cmp $0x0, %edx;"
"je notFound;"
"jne mainloop;"
"notFound: "
"mov $0x0, %eax;"
"add $0x10, %esp;"
"leave;"
"ret;"
"found: "
"add $0x10, %esp;"
"leave;"
"ret;"
);
问题可能出在这一行:
"movl 0xc(%ebp), (%esp);"
不能在一条mov指令中引用两个内存位置