Hi,
ich mache gerade einbisschen was mit Delphi/Pascal. Ich will mittels inline-asm den Vendor-String der CPU ausgeben. So mache ich das bis jetzt:
Nur leider gibt er mir immer folgendes aus:
Tjo und somit fehlt das G, da es ja GenuineIntel heißen müsste. Aber was mache ich verkehrt? Wenn ich anstatt
einfach
schreibe, dann gibt er den String net aus (vermutlich, weil sich bei [str+0] eine null befindet und er es als Ende des Zeichenstrings interpretiert. Schreibe ich aber
Dann gibt er
aus, also ohne dem a. Aber wieso? Prüft delphi ob das erste Zeichen der Zeichenkette ungleich null ist und wenn ja, dann gibt er ab dem zweiten zeichen aus, ansonsten gar nichts?
Das ist sehr mergwürdig. Kennt sich jemand von euch mit Delphi / Pascal aus?
thx
bitmaster
ich mache gerade einbisschen was mit Delphi/Pascal. Ich will mittels inline-asm den Vendor-String der CPU ausgeben. So mache ich das bis jetzt:
Code: [Auswählen]
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils;
var
str: string[13];
begin
asm
mov eax,0
cpuid
mov dword ptr [str],ebx
mov dword ptr [str+4],edx
mov dword ptr [str+8],ecx
mov byte ptr [str+12],0
end;
Writeln('Vendor-String: ' + str);
Readln;
end.Nur leider gibt er mir immer folgendes aus:
Zitat
Vendor-String: enuineIntel
Tjo und somit fehlt das G, da es ja GenuineIntel heißen müsste. Aber was mache ich verkehrt? Wenn ich anstatt
Code: [Auswählen]
mov dword ptr [str],ebxeinfach
Code: [Auswählen]
mov dword ptr [str+1],ebxschreibe, dann gibt er den String net aus (vermutlich, weil sich bei [str+0] eine null befindet und er es als Ende des Zeichenstrings interpretiert. Schreibe ich aber
Code: [Auswählen]
mov byte ptr [str],'a'
mov dword ptr [str+1],ebxDann gibt er
Zitat
Vendor-String: GenuineIntel
aus, also ohne dem a. Aber wieso? Prüft delphi ob das erste Zeichen der Zeichenkette ungleich null ist und wenn ja, dann gibt er ab dem zweiten zeichen aus, ansonsten gar nichts?
Das ist sehr mergwürdig. Kennt sich jemand von euch mit Delphi / Pascal aus?thx
bitmaster

Übersicht
Wiki
Hilfe
Suche
Einloggen
Registrieren
Drucken


Gespeichert