Forum: Programmieren allgemein
by Namenloser,
17. Mär 2014
Okay, danke für die Info. (Das ist mal wieder typisch Microsoft, das Dokument nur als Word-Document bereitzustellen... ich habe hier gerade kein Programm um sowas zu öffnen.)
Forum: Programmieren allgemein
by Namenloser,
16. Mär 2014
Danke für den ausführlichen Post, aber so weit war mir das schon klar. Ich stand nur irgendwie auf dem Schlauch, wo man sowas braucht, da ich beim Speicher nur gedacht habe an: Code (relative Sprünge), Stack (auch relativ) und Heap (sowieso dynamisch). An sowas wie Konstanten oder globale Variablen hatte ich nicht gedacht.
Forum: Programmieren allgemein
by Namenloser,
16. Mär 2014
Stimmt, daran hatte ich gar nicht gedacht. Da macht Relocation auch Sinn.
Forum: Programmieren allgemein
by Namenloser,
16. Mär 2014
Richtig, und bei speziellen (Mikro-?)Prozessoren gibt es soweit ich weiß auch Pointer-Längen, die kein Vielfaches von 8 sind.
Forum: Programmieren allgemein
by Namenloser,
16. Mär 2014
Ja, aber es könnte ja sein, dass ein Pointer z.B. 20 Bits lang ist und die JMP-Instruction so aussieht:
jjjj aaaa aaaa aaaa aaaa aaaa
Wobei hier jedes Zeichen für 1 Bit stehen soll. Die ersten 4 Bit kodieren die JMP-Instruktion selbst, und die restlichen 20 Bit geben die Zieladresse an.
Dann kann man nicht einfach dem Betriebssystem eine Byte-Adresse zum Patchen geben, weil die zu...
Forum: Programmieren allgemein
by Namenloser,
16. Mär 2014
Ja, bei Prozessoren, die nur absolute Adressen unterstützen, leuchtet es mir ein. Also braucht man das wirklich nur da?
Und wenn Relocation ausgeführt wird, dann wird vom Betriebssystem jeder einzelne Sprung gepatcht, ist das richtig? Das heißt, das Betriebssystem müsste unter Umständen Assembler-Code disassemblieren können? Denn es ist ja nicht gesagt, dass auf jeder Prozessorarchitektur die...