Entwickler-Ecke
Algorithmen, Optimierung und Assembler - Kurze ASM Hilfe zu JNB
Flamefire - Fr 08.02.08 16:39
Titel: Kurze ASM Hilfe zu JNB
Was ganeu macht der code?
Quelltext
1: 2: 3: 4: 5: 6:
| 0074A1D8 > \8B7C24 70 MOV EDI,[ESP+70] 0074A1DC . BE 08000000 MOV ESI,8 0074A1E1 . 39B424 84000000 CMP [ESP+84],ESI 0074A1E8 . 73 04 JNB SHORT 0074A1EE 0074A1EA . 8D7C24 70 LEA EDI,[ESP+70] 0074A1EE > 68 2077C000 PUSH 00C07720 |
Er läd also den Wert von ESP+$70 in EDI und vergleicht den wert von ESP+$84 mit 8
Wenn der Vergleich fehlschlägt nimmt er stattdessden die addresse von ESP+$70
Wann springt das JNB nun?
Bei größer/gleich oder bei kleiner?
Vielen Dank
Marc. - Fr 08.02.08 16:57
Jump if not below. ;) Springe, wenn ESP+$84 größer ESI. Wenn ich micht nicht gerade ganz Irre. :P
Bei "nicht kleiner gleich" hieß es JNBE. e wie equal.
cu
Allesquarks - Fr 08.02.08 17:06
Deine Übersetzungen sind richtig nur die Negationen nicht not below=greater or equal und
not below or equal = greater
Flamefire - Sa 09.02.08 14:51
also wäre die delphi übersetzung davon
Delphi-Quelltext
1: 2:
| If(PCardinal(ESP+$84)^<8) then EDI:=ESP+$70 else EDI:=PCardinal(ESP+$70)^; |
Richtig?
Mitmischer 1703 - Sa 09.02.08 16:11
Was ist das überhaupt für eine Sprache? :shock:
Flamefire - Sa 09.02.08 16:21
das letze von mit ne mischung aus ASM und delphi ^^
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!