AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Delphi & ASM - Integer umdrehen

Ein Thema von quendolineDD · begonnen am 4. Sep 2007 · letzter Beitrag vom 12. Sep 2007
Antwort Antwort
Muetze1
(Gast)

n/a Beiträge
 
#1

Re: Delphi & ASM - Integer umdrehen

  Alt 4. Sep 2007, 19:27
Zitat von quendolineDD:
Dabei brauch doch das ASM einen Wert der zum Beispiel so aussieht: $123456. Und so sehen doch immer nur die Pointer aus ... (btw. vlt auch doch nicht :-\ )
Das ist einfach nur eine hexadezimale Darstellung der Zahlen. Diese ist durch die Basis von 16 platzsparender und effektiver als die Angabe in dezimalen System (Basis von 10).

Zitat von quendolineDD:
Aber der Wert, welcher dabei herauskommt ist ganz und gar nicht "umgedreht".
Das sieht nur so aus.

Zitat von quendolineDD:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var nmbr: integer;
begin
 nmbr:= StrToInt(Edit1.Text);

 asm
    mov edx, nmbr;
    bswap edx;
    mov nmbr, edx;
 end;

 Label1.Caption := inttostr(nmbr);
end;
So ist es richtig.

Zitat von quendolineDD:
Geb ich nun zum Beispiel "123456" ein, erhalte ich als Rückgabewert in das Label folgende Zahl: "1088553216".
Er dreht die einzelnen Bytes um und von daher arbeitet er auf der Basis von 256 und nicht auf der Basis von 10, so wie du es ausgibst. Da die Basis von 256 schlecht auszugeben ist, nutze einfach die Basis von 16 (hexadezimal), weil dort ergeben 2 Stellen eine Basis von 256. Somit siehst du dann eher was er macht.

Also: gebe in dein Editfeld mal $12345678 ein und die Ausgabe kannst du auch wieder hexadezimal gestalten:Label1.Caption := inttohex(nmbr, 8);
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz