grösser / kleiner bei "unsigned" long

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
Froggerprogger
Badmin
Beiträge: 855
Registriert: 08.09.2004 20:02

Beitrag von Froggerprogger »

Hoppalalilala...
OK, habs eben erneut repariert (im obigen Post)...
Nun check ich das auch (...auch das, was remi_meier oben meinte): A, AE, B, BE richten sich nach CF (und ggf. ZF für Gleichheit) und sind damit unabhängig vom Vorzeichen, während sich G, GE, L, LE nach (SF xor OF) richten bzw. ggf. noch ZF, und damit das Vorzeichen beachten. Denken hülft.

Bevor ich irgendwann mal wieder ASM-code poste, werde ich mich damit aber wohl erstmal genauer beschäftigen müssen...
!UD2
andi256
Beiträge: 100
Registriert: 06.11.2004 11:23
Computerausstattung: PB 5.30 (x64) Win7
Wohnort: Österreich

Beitrag von andi256 »

Procedure.l UINT_Greater(a.l, b.l)
!XOR eax,eax
!MOV ebx,[esp]
!CMP ebx,[esp+4]
!SETA al
ProcedureReturn
EndProcedure

Debug UINT_Greater(0,0) ; = 1
Debug UINT_Greater(1,0) ; = 1
Debug UINT_Greater(0,0) ; = 1
Debug UINT_Greater(1,1) ; = 1

kann mir einer erklären warum das unter PB4 nicht mehr passt ?

bzw eine passende für PB4 machen ... binder totale asm noob ...

Andi256
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

Code: Alles auswählen

Procedure.l UINT_Greater(a.l, b.l) 
  !XOR Eax,Eax 
  !MOV Ebx,[p.v_a] 
  !CMP Ebx,[p.v_b] 
  !SETA al 
  ProcedureReturn 
EndProcedure
Antworten