Einzelnen Beitrag anzeigen

Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#7

Re: IntToStr mal anders

  Alt 17. Nov 2007, 10:56
Zitat von Der_Unwissende:
Zitat von Nils_13:
Ich möchte eigentlich nur aus Interesse wissen, wie das ein Betriebssystemprogrammierer machen würde.
Hi,
warum dann ohne Unit? Dass Du die Unit System nicht explizit einbindest heißt keineswegs, dass Dein Delphi-Programm frei von einer Unit ist! Auch (oder gerade?) Betriebssystemprogrammierer sind Menschen, die haben keine Lust ständig das Rad neu zu erfinden. Natürlich greifen die also auf Bibliotheken zurück! Anders wäre es kaum möglich die Komplexität der heutigen OS so fehlerarm zu erreichen (und ja, auch mir ist klar dass es Fehler gibt, nur wären es wohl ohne Bibliotheken ein paar zig-Tausende mehr).
Ansonsten kannst Du natürlich einfach in den Source schauen, der ist doch bei den Turbo Explorer Versionen mit bei, da gibt es sicherlich auch die Implementierung von IntToStr.

Gruß Der Unwissende
Eigentlich nicht. Du kannst viele Units nicht nehmen, da sie platformspezifisch sind. Audiobibliotheken und so ein Zeug werden gerne übernommen, da sie zu viel Zeit kosten würden und auch nur unnötiger Arbeitsaufwand wären, da hast du recht. Turbo Explorer hab ich übrigens nicht, aber den Code von Delphi7 :
Delphi-Quellcode:
function IntToStr(Value: Integer) : String;
assembler;
asm
  PUSH ESI
  MOV ESI, ESP
  SUB ESP, 16
  XOR ECX, ECX
  PUSH EDX
  XOR EDX, EDX
  CALL CvtInt
  MOV EDX, ESI
  POP EAX
  CALL System.@LStrFromPCharLen
  ADD ESP, 16
  POP ESI
end;
Der sieht aber nicht sehr platformunabhängig aus (System.).

Zu den anderen Codes: und was ist Chr als Funktion oder anders gefragt: wo finde ich diese Funktionen ? SysUtils usw. sieht leer aus.
  Mit Zitat antworten Zitat