Warum nicht gibt es eine subi opcode für MIPS?
Ich bin ganz neu Assembler. Ich war Lesung über MIPS Architektur und kam zu wissen, dass Sie addi
opcode, aber es gibt keine subi
opcode. Kann jemand bitte erklären Sie mir, warum nicht wir haben eine subi
opcode?
Vielen Dank im Voraus.
- Nahezu doppelte Was ist die "Beziehung" zwischen addi und subi?. Einige MIPS-Assembler implementieren
subi
als pseudo-Anweisungen. (einschließlich der MARS-simulator, nicht aber SPIM.)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beim erstellen einer Anweisung festgelegt, sind Sie verpflichtet, die von einigen Einschränkungen, wie z.B. die gesamte Anzahl der Anweisungen, die Sie erstellen können. Die MIPS-Machern klar, dass es nicht eine Notwendigkeit für
subi
(weil Sie hinzufügen können, eine negative Zahl mitaddi
mit 2-Komplement), und Sie haben einfach die Entscheidung getroffen, zu verzichten, zu machen, dass der Unterricht. Vielleicht waren es die Erhaltung der Anzahl der Anweisungen, oder einfach nur, weil Sie nicht erforderlich ist.sub
so, also es ist nicht unbedingt notwendig. Aber, es sei denn, es ist ein weiterer wichtiger Vorgang, der wäre nicht in der ISA durch die Einbeziehungsub
ist, ist es nicht schädlich über die Aufnahme in die ISA.sub
ist sehr viel häufiger alssubi
mit immediates größer als 32767 ist also, warum die Anweisung wurde eingeführt, sonst können wir haben eine komplette Anleitung einstellen, mit nur 1 Anleitung und auch sehr langsam machen gemeinsame Dinge. "Guter Entwurf verlangt gute Kompromisse"Beide
addi
undaddiu
16-bit signed immediates als operand, so macht es keinen Sinn fügen Sie trennensubi
undsubiu
opcodes.addi
sign-extended, wenn Hinzugefügt wird, um ein register?ADDIU
(ADDIU
unterscheidet sich nur vonADDI
in, dass es keinen Anlass Überlauf Ausnahmen)