Einzelnen Beitrag anzeigen

Benutzerbild von Memnarch
Memnarch

Registriert seit: 24. Sep 2010
737 Beiträge
 
#1

ASM Problem: "Operandsize Missmatch" bei "SAR EAX, DL"

  Alt 8. Aug 2013, 09:07
Delphi-Version: XE
Moin allerseits,
Habe gerade nen Compilerfehler bekommen, den ich nicht verstehe.

Himitsu hatte vor LANGER Zeit mal hier ein Beispiel gepostet:
http://www.delphipraxis.net/1164475-post10.html

wenn ich die funktion für SAR aber so schreibe, bekomme ich für

Delphi-Quellcode:
asm
  SAR EAX, DL
end;
den Fehler:
"Operandsize missmatch"

Momentmal...DL ist doch 8 bit?(und wird vom Compiler auch für den Parameter angesteuert)

Wenn ich jetzt folgendes schreibe:
Delphi-Quellcode:
asm
  SAR EAX, CL
end;
Ist das zwar vollkommen unsinnig, aber compiliert...warum? CL und DL sind beides 8Bit Register.

Was mach ich falsch?

MFG
Memnarch
Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden
  Mit Zitat antworten Zitat