Zugriff auf CPU Register
-
Hallo Freunde,
Ich stehe vor einem Problem.
Ich muss ein C Programm schreiben, dass alle CPU Register eines X Beliebigen Programms anzeigt.
Könnt ihr mir helfen???
-
nur mit Inline Assembler mMn möglich
-
transcend schrieb:
Ich muss ein C Programm schreiben, dass alle CPU Register eines X Beliebigen Programms anzeigt.
Verstehe ich das richtig, du sollst die CPU Register von einem beliebigen Thread in einem beliebigen anderen Prozess anzeigen!? Das wird wohl nur mit einigen richtig dreckigen und OS-spezifischen Hacks möglich sein, denn das erfordert wohl dass du dich an die OS-internen Strukturen ranmachst in denen der jeweilige Thread Context gesichert wird...
-
Was sind denn CPU-Register?
-
Nutze einfach einen Emulator ...
-
was ist ein Emulator?????
-
was heißt eines x beliebigen programms?
ein programm hat keinen expliziten zugriff auf register, allein durch task sheduling wird das bereits gründlich ruiniert.du müsstest mit inline assembler die register auslesen und wohl mit diry hacks den aktiven prozess ermitteln um es zuordnen zu können.
das geht aber alles so schnell, das ich da keinen Sinn sehe.sicher das du die Aufgabenstellung richtig verstanden hast?
-
naja, orioon
genauer gesagt, soll mein c programm ein cpu simulator sein, ich bekommen in txt file einen assamblycode und denn soll ich simulierern, also wenn zb
sta,ri fp,-1 --> printf("Register indirekte Adressierung in Framepointer -1");
das kann ich eh!!!^^das nächste programm soll nun die cpu register anzeigen die das assembly file braucht, ich habe keine ahnung wie das gehen soll.
Ich habe es mit asm() probiert, aber ohne erfolg.
ich habe leider sie angabe richtig verstanden.lg
-
transcend schrieb:
ich habe leider sie angabe richtig verstanden.
Aber du hast sie (sofern ich dich jetzt richtig verstehe) völlig falsch erklärt. Daher passen die bisherigen Antworten überhaupt nicht zu deiner Frage. Ist das was du eigentlich hast, nicht bloß ein Textparseproblem? Also dass du ein Assemblerprogramm in einer bestimmten Notation hast (oder auch meinetwegen im übersetzten Zustand, aber das kann man ja rückgängig machen) und darin einfach die benutzten Register suchen musst?