Warum kann ein Programm, das in der Intel-Assemblersprache geschrieben ist, nicht auf dem PowerPC-Prozessor ausgeführt werden?

504
Stack Holder

Anweisungen für die Assemblersprache sind für den im System verwendeten Prozessor nativ. Ein Programm, das in der Intel-Assemblersprache geschrieben ist, kann beispielsweise nicht auf dem PowerPC-Prozessor ausgeführt werden.

Ich kann das nicht verstehen. Bitte klären Sie mich.

-2
Bedenken Sie Folgendes: Ein auf Französisch geschriebenes Buch kann nur von jemandem gelesen werden, der Französisch versteht. Es kann nicht von jemandem gelesen werden, der nur Niederländisch spricht. Hennes vor 8 Jahren 0
Unterschiedliche Assemblersprache, andere Anweisungen, völlig unterschiedliche Architekturen Ramhound vor 8 Jahren 0
Es gibt keinen Cross-Assembler? Ähm .. natürlich gibt es. Jamie Hanrahan vor 8 Jahren 0
@JamieHanrahan - ja, natürlich gibt es Compiler und Assembler, aber wenn Sie sich das eigentliche Hex der Architektur eines Prozessors ansehen oder einen nicht kompatiblen Prozessor eines anderen Unternehmens verwenden, könnte der tatsächliche Code für eine Funktion anders sein. Daher können Sie keinen Code direkt in eine Datei schreiben und davon ausgehen, dass er für eine andere Prozessorlinie - die keine Familie ist - genau dasselbe bedeutet. Deshalb nennen wir sie "Befehlssätze" x86, mmx, mmx2 usw. sind allgemein bekannt für "Intel" -Prozessoren. TG2 vor 8 Jahren 0
Ich weiß das alles. Die Frage bezieht sich nicht auf das "tatsächliche Hex auf einer Prozessorarchitektur". Die Frage bezieht sich auf "ein Programm, das in der Assemblersprache von Intel geschrieben ist". Ein Programm, das in der Intel-Assemblersprache geschrieben ist, kann auch nicht auf Intel-Prozessoren ausgeführt werden. Es muss zusammengebaut werden. Und es gibt Cross-Assembler. Es ist durchaus möglich, PowerPC-Maschinencode aus der Assemblersprache von Intel zu generieren (obwohl bestimmte Details, z. B. die Implementierung von Intels Segmentierung, nicht direkt von einer zur anderen passen). Eine "beste Antwort" sollte diese Unterscheidung wirklich deutlich machen. Jamie Hanrahan vor 8 Jahren 0

1 Antwort auf die Frage

1
music2myear

Weil die Architektur (die physische Zusammensetzung, die durch die logischen Prinzipien des Prozessors bestimmt wird) unterschiedlich ist.

x86 und PowerPC erreichen dasselbe: eine Universalverarbeitungseinheit für die Verarbeitung von Code in einer Rechenvorrichtung. Sie basieren jedoch auf unterschiedlichen Vorstellungen, wie ein solches System funktioniert, und verwenden daher unterschiedliche Formen und Methoden, um ihre ähnlichen Ziele zu erreichen .

Ich würde nicht sagen, Architektur, weil es zu vage ist. Der * spezifische Befehlssatz *, den ein Prozessor in der Art, Reihenfolge und für das erwartete Ergebnis ausführen soll, wurde für jede Prozessorfamilie oder -art anders entworfen. Jeder kann sich darauf einigen, dass "Multiplizieren" als mathematische Funktion auf jedem gegebenen Weg zur Ausführung des Aktes das gleiche Ergebnis sein sollte. Der Intel-Prozessor macht dies jedoch anders als der PowerPC-Prozessor. Wenn Sie lediglich einen Funktionsnamen angeben, bedeutet dies nicht, dass derselbe zugrundeliegende Hex-Code von einer Prozessormarke, einem Typ oder einer Familie zur anderen identisch ist. TG2 vor 8 Jahren 1
Der Unterrichtssatz und die Architektur sind zwei Seiten derselben Medaille, und ich denke, es ist am besten zu sagen, dass beide der Grund dafür sind. Jeder informiert sich gegenseitig und beide werden von den Annahmen und dem Wissen sowie den Stärken und Schwächen der Personen und Teams bestimmt, die diese beiden ähnlichen, aber unterschiedlichen Prozessoren in erster Linie entworfen haben. music2myear vor 8 Jahren 0
- "Der Befehlssatz und die Architektur sind zwei Seiten derselben Medaille" - nicht immer wahr. Schauen Sie sich die Prozessormarken Intel & AMD an. Sie haben eine lange Laufzeit, * beide * implementieren einen x86-Befehlssatz, aber die Architektur des Prozessors ist sehr unterschiedlich. Selbst wenn AMD MMX und andere Erweiterungen hinzufügte, mussten sie nicht dieselbe Intel-Prozessor-Referenzarchitektur verwenden, solange der AMD-Chip mit einem Befehlssatz, den Intel ursprünglich erstellt hatte, dasselbe Ergebnis erzielen konnte. TG2 vor 8 Jahren 0