Ik ben erg nieuw in Assemblagetaal. Ik las over MIPS-architectuur en kwam erachter dat je addi
opcode hebt, maar dat er geen subi
opcode is. Waarom hebben we geen subi
opcode?
Antwoord 1, autoriteit 100%
Als u een instructieset maakt, bent u gebonden aan enkele beperkingen, zoals het totale aantal instructies dat u kunt maken. De MIPS-makers realiseerden zich dat er geen behoefte is aan subi
(omdat je een negatief getal kunt toevoegen met addi
met behulp van 2’s complement), en ze hebben eenvoudigweg de beslissing genomen om af te zien het maken van die instructie. Het kan zijn geweest om het aantal instructies te besparen, of gewoon omdat het niet nodig is.
Antwoord 2, autoriteit 18%
Zowel addi
als addiu
nemen 16-bits ondertekende onmiddellijke tekens als operand, dus het heeft geen zin om aparte subi
en subiu
opcodes.