如何將以下匯編的改寫為C/C++:
mov eax,xxxxx(int值)
sub 300
add -23
sub 15
jnb L1(標簽)
謝謝。
uj5u.com熱心網友回復:
數字前面忘寫eax了,我要寫成:mov eax,xxxx
sub eax,262
jnb L1
就不會跳轉去L1,為什么?
uj5u.com熱心網友回復:
mov eax,xxxxsub eax,338
jnb L1
uj5u.com熱心網友回復:
這個就相當于:if ((unsigned int)xxxx >= 338) goto L1;
uj5u.com熱心網友回復:
不行,我試了,不能那樣寫,必須分開寫才跳轉。弄不明白為什么。
比如xxxx=320 以前那樣寫就跳轉,自己算過就不跳。
mov eax,xxxx
sub eax,300
add eax,-23
sub eax,15
jnb L1
必須這樣才跳,寫你那樣不跳。
uj5u.com熱心網友回復:
int xxxxx,eax;
eax=xxxxx; //;mov eax,xxxxx(int值)
eax-=300; //;sub 300
eax+=-23; //;add -23
if ((unsigned int)eax-15>0) goto L1; //;sub 15
//;jnb L1(標簽)
//... //;...
L1:
uj5u.com熱心網友回復:
int xxxxx,eax;
eax=xxxxx; //;mov eax,xxxxx(int值)
eax-=300; //;sub 300
eax+=-23; //;add -23
eax-=15; //;sub 15
if (eax>=0) goto L1; //;jnb L1(標簽)
//... //;...
L1:
uj5u.com熱心網友回復:
jnb之前呼叫cmp指令試試
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/213067.html
標籤:新手樂園
上一篇:這個該怎么改啊,求大佬帶
下一篇:snapshot
