Thema: Delphi "Zeichen" im Integer

Einzelnen Beitrag anzeigen

jmd anders

Registriert seit: 13. Mai 2004
84 Beiträge
 
#16

Re: "Zeichen" im Integer

  Alt 19. Jan 2007, 23:46
ich hab mal ein bißchen rumgetestet, auch mit assembler, bisher aber nur für 32bit integer.
Delphi-Quellcode:
function InlineAsm(x:integer) : integer;
const e=1;
      z=10;
      h=100;
      t=1000;
     zt=10000;
     ht=100000;
      m=1000000;
     zm=10000000;
     hm=100000000;
     md=1000000000;
    zmd=10000000000;
asm
  MOV EDX, EAX
  JMP @Ret1

  @Ret1 :
    CMP EDX,z
    JAE @Ret10
    MOV EAX, 1
    JMP @Ende;
  @Ret10 :
    CMP EDX,h
    JAE @Ret100
    MOV EAX, 2
    JMP @Ende;
  @Ret100 :
    CMP EDX,t
    JAE @Ret1000
    MOV EAX, 3
    JMP @Ende;
  @Ret1000 :
    CMP EDX,zt
    JAE @Ret10000
    MOV EAX, 4
    JMP @Ende;
  @Ret10000 :
    CMP EDX,ht
    JAE @Ret100000;
    MOV EAX, 5
    JMP @Ende;
  @Ret100000 :
    CMP EDX,m
    JAE @Ret1000000
    MOV EAX, 6
    JMP @Ende;
  @Ret1000000 :
    CMP EDX,zm
    JAE @Ret10000000
    MOV EAX, 7
    JMP @Ende;
  @Ret10000000 :
    CMP EDX,hm
    JAE @Ret100000000
    MOV EAX, 8
    JMP @Ende;
  @Ret100000000 :
    CMP EDX,md
    JAE @Ret100000000
    MOV EAX, 9
    JMP @Ende;
  @Ret1000000000 :
    MOV EAX, 10
    JMP @Ende;

 @Ende :
end;
das ist dabei rausgekommen, sehr ähnlich zu jason's asm funktion, nur ohne irgendwelche schleifen.
ich hab jason's asm funktion nicht getestet, aber seine delphi funktion, die war extrem schnell(7-8mal schneller als die asm funktion von 3_of_8).
ich hatte das gefühl, dass meine funktion einen tick schneller ist als die delphi funktion von jason(ich glaub nicht mal 1%)
  Mit Zitat antworten Zitat