Wenn Sie ein Lehrbuch geschrieben haben und Sie sich für ein CPU-Design entscheiden müssen, um über bestimmte Probleme zu sprechen, würden Sie sich für RISC oder CISC entscheiden? Pros für RISC, naja, du weißt: sauberer, einfacher und so weiter. Cons für RISC: Ich würde einen Emulator, einige CPUs im Markt, im Vergleich zu x86 verwenden müssen, und daher weniger Auswirkungen als wenn ich eine reine RISC-CPU wie ARM oder SPARC wählte. Ich bin zerrissen, obwohl ich mich auf x86 und CISC lehne ... viele Vorteile, Nachteile: nicht RISC, und all diese Bücher wie Henessy et al. und andere lieben RISC! Zusammenfassend: Würden Sie sich für RISC oder CISC (x86) entscheiden? Danke.
Foren allgemein (oder Programmierer) Publikum Ich würde vorschlagen, x86 . Egal welche Sprache sie kennen, die gleichen Bausteine wie für und if oder das Konzept der Funktionen können einfach mit x86 demonstriert werden Anweisungen.
Asm ist abstrakt genug, es ist unbezahlbar, wenn sie das neue Wissen mit ihrem bestehenden Verständnis von Programmierung verbinden können. (Es kann ihnen sogar helfen, besseren Qualitätscode zu schreiben).
Ich glaube nicht, dass die Auswahl von x86 bedeutet, dass Sie alle Anweisungen einbeziehen müssen. Die nächste Stufe kann sein, dass Sie die Maschinencode-Repräsentation einiger ASM-Strukturen einführen, aber nur, wenn sie zuerst mit ihren Mnemonics vertraut sind.
Sprechen Sie speziell über x86-Prozessor-Design oder eine bestimmte Design-Funktion, die häufiger in x86 als alles andere ist? Nein? Dann gehen Sie mit einer RISC-Architektur.
Alles was mit x86 erreicht wird, ist, dass die x86-Mechanik jeden Punkt verdeckt, den Sie gerade versuchen zu machen.
Ich bevorzuge RISC, weil sie schnelle und kleine Anweisungen haben. Sie sind billiger als CISCs und haben viele mehr Register . Und einige Anweisungen von CISC-Prozessoren, zum Beispiel intel's xchg
oder scas
, stos
, movs
und cmps
, die mit rep
verwendet werden, sind so speziell, dass viele Compiler sie nie benutzen, also ist es nur ein Verschwendung von Silizium und Geld.
Und selbst wenn RISC-Prozessoren mehr Befehle benötigen, um das zu erreichen, was ein CISC mit nur einem tun würde, haben sie so viele Register, dass auf Speicher (auf den ich denke) auf einem RISC weniger häufig zugegriffen wird.
Ich spreche als CISC- "Programmierer", da ich auf dem x86 der Intel gelernt habe und manchmal nur 6 Allzweckregister zur Verfügung habe, die oft auf 3 oder 4 in Schleifen reduziert sind (ecx ist weg, entweder mit edi oder esi oder beiden) ), kann sehr schwierig sein.
Obwohl die Assemblierung selbst dazu neigt, die wahre Natur des Codes zu verbergen, denke ich (ich erinnere mich daran, dass ich mit dem x86 gewachsen bin), dass die RISC-Assemblierung aufgrund des größeren benötigten Befehlsaufwands schwieriger zu verstehen ist.
Wenn die Hauptanforderung für ein Projekt die Sicherheit ist, nicht die Kapazität, da die Sicherheit oft einen Kompromiss für die Kapazität darstellt, dann schlage ich vor, dass die RISC-Architektur verwendet wird. Eine Firewall, die zum Beispiel x86-Assembler verwendet, hatte bekanntermaßen ein Sicherheitsproblem, das RISC-Implementierung wie SPARC-Assembler nicht hatte. Die Spezifikation für das sicherste Projekt könnte also die SPARC-Assemblierung sein, da diese als sichere Umgebung bekannt ist. Selbst wenn es nicht als sichere Umgebung bekannt ist, gibt es nur wenige Leute, die SPARC-Assembly im Vergleich zur x86-Assembly programmieren können Daher wäre die Anzahl der Angreifer, die eine Sicherheitsverletzung programmieren könnten, geringer, wenn die Firewall eine RISC-Architektur ausführt.
Ich sage also, wenn Sie über eine Firewall-Anwendung sprechen, dann sollte es wahrscheinlich eine RISC-Architektur sein.
Tags und Links cpu cpu-architecture