Thema: Delphi Inline ASM - Rückgabe

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#2

AW: Inline ASM - Rückgabe

  Alt 11. Okt 2010, 21:44
Wo kommt bitte "s" her?

Operandengröße stimmt nicht überein..
Ist doch auch klar?

Integer = 4 Byte (z.B. EAX)
Byte = 1 Byte (z.B. AL)

Delphi-Quellcode:
var
  stunden, minuten, sekunden: Byte;
begin
  asm
    mov AH, $2C
    int $21
    mov byte ptr &stunden, CH
    mov byte ptr &minuten, CL
    mov byte ptr &sekunden, DH
  end;
(ich persönlich schreib das "byte ptr" und "&" mit dazu und arbeite auch gern einheitlich mit der Delphi-Syntax für die Hex-Werte ... muß man aber nicht unbedingt)

Es gab aber auch noch irgendeinen Befehl (welcher mir grad nicht einfällt), um Byte nach LongWord/LongInt zu expandieren, aber ich glaub der ging nur innerhalb eines Registers.


PS: Warum unbedingt via Interrupt?
(wobei dieser vom Windows nicht unbedingt erlaubt sein muß)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (11. Okt 2010 um 21:50 Uhr)
  Mit Zitat antworten Zitat