【发布时间】:2012-01-25 11:46:02
【问题描述】:
说我得到了这样的东西..
bool isPatched;
我还有一些其他的 GUI,我在其中设置了 isPatched= true; 和 isPatched= false;、isPatched = !isPatched;
void __declspec( naked ) test(void) { //
__asm {
PUSHAD
PUSHFD
MOV EAX, isPatched
CMP EAX, 0
je noPatched
MOV EAX, DWORD PTR DS:[ESI+0x77C]
MOV John.oldA, EAX
MOV EAX, John.A
MOV DWORD PTR DS:[ESI+0x77C], EAX
JMP finish
noPatched:
PUSH EDX
MOV DWORD PTR DS:[ESI+0x77C], EDX
finish:
POPFD
POPAD
JMP gotoAddressBack
}
}
是否可以在内联汇编中使用bool 运算符?
我认为它认为 isPatched 是一个标签..来自此错误消息。
error C2094: label 'isPatched' was undefined
【问题讨论】:
-
test eax,0将导致je一直跳转。 -
哦.....我必须使用
CMP然后对吗? -
isPatched != isPatched始终为假。你的意思是= !? -
是的 opps
isPatched = !isPatched -
@SSpoke:要么使用
cmp eax, 0,要么使用test eax, eax。
标签: c++ inline-assembly boolean