Verfasst: 25.11.2005 20:55
Ja, bis auf Zeile 2. Wieso sollen da Sachen stehen die bei nicht erfüllter Bedingung ausgeführt werden? Das wär ja dann schon ein Else, wobei dann aber ein JMP vor der 2. Zeile fehlen würde.
Aber wenns euch wirklich so interessiert könntet ihr auch einfach mal den Output von Purebasic analysieren:
Und im fertigen Programm sieht das dann so aus:
Aber wenns euch wirklich so interessiert könntet ihr auch einfach mal den Output von Purebasic analysieren:
Code: Alles auswählen
If A = B
x = 0
Else
x = 1
EndIf
Code: Alles auswählen
MOV ebx,dword [v_A] ;Schreib A in Register Ebx
CMP ebx,dword [v_B] ;Vergleiche Ebx mit B (CMP dword [v_A],dword [v_B] funktioniert nicht)
JNE _EndIf2 ;Wenn a!=b springe zum Else
MOV dword [v_x],0 ;x = 0
JMP _EndIf1 ;Springe zum Endif, da sonst das Else auch ausgeführt werden würde
_EndIf2: ;Else
MOV dword [v_x],1 ;x = 1
_EndIf1: ;Endif
Code: Alles auswählen
0040106B |. 8B1D 88214000 MOV EBX,DWORD PTR DS:[402188]
00401071 |. 3B1D 8C214000 CMP EBX,DWORD PTR DS:[40218C]
00401077 |. 75 0C JNZ SHORT PureBasi.00401085
00401079 |. C705 90214000 >MOV DWORD PTR DS:[402190],0
00401083 |. EB 0A JMP SHORT PureBasi.0040108F
00401085 |> C705 90214000 >MOV DWORD PTR DS:[402190],1