Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

Re: just-in-time - Codeerzeugung : Funktionen aus Formeln?

  Alt 18. Okt 2009, 15:16
mann könnte auch noch viele der Stringoperationen weglassen und durch knuffige "Integer" ersetzen

und wenn man dann noch die Speicherverwaltung den Prozeduren (wobei sich da eine Klasse gut eigenen würde) überläßt, dann könnte es am Ende eventuell etwa so aussehn
Delphi-Quellcode:
type TRegister = (rNone, rEAX, rEBX, rECX, rEDX, rSDI, ...);
  TComand = (cPUSH, cPOP, cMOV, ...);

procedure write_asm(code: Pointer; reg: TRegister; mem: Pointer = nil); overload;
procedure write_asm(code: Pointer; mem: Pointer; reg: TRegister = rNone); overload;

codeptr := CreateAsm;
AddAsm(codeptr, cPUSH, rEAX);
AddAsm(codeptr, cMOV, rEAX, $AABBCCDD);
AddAsm(codeptr, cPOP, rEAX);
AsmExecute(codeptr, u, v);
AsmFree(codeptr);
bzw. so
Delphi-Quellcode:
code := TAsm.Create;
code.Add(cPUSH, rEAX);
code.Add(cMOV, rEAX, $AABBCCDD);
code.Add(cPOP, rEAX);
code.Execute(u, v);
Asm.Free;
$2B or not $2B
  Mit Zitat antworten Zitat