over 1 year
ago -
Rocket
-
Direct link
Stationeers implementation of MIPS is relatively MIPS compliant and implements all the core MIPS functionality. Like many, if not all, chipsets it implements some of its own new instructions that are related to its special use case. In the case of Stationeers, this is mainly instructions provided for batch conducting instructions.
So I don't think it's fair, or useful, to say stationeers is "not the same as real-world MIPS". In fact, I would say such a statement is quite wrong. MIPS is not a specific set of instructions, for example if you look at a variety of MIPS implementations currently in use at major universities you will see some significant differences. It is a family of implementations based around a common approach of a very reduced instruction set to control a processor. Many of the core instructions used in MIPS in stationeers, are close to if not exactly the same in most MIPS family implementations.
While some good answers to the OPs questions, nobody has touched on an explanation of *why* there is no else. The simple answer is that there *is* else, but that there is no short hand for IF ... ELSE. This is because underneath any IF... ELSE in programming, there are a series of instructions. With MIPS, you are operating at a lower level from high level programming - so you will need to include the logic that, combined, will reach IF.. ELSE.
The following offers a good outline of how jumps (such as IF ... ELSE) can be decomplied and represented in MIPS instructions:
https://fog.ccsf.edu/~gboyd/cs270/online/mipsII/if.html
So I don't think it's fair, or useful, to say stationeers is "not the same as real-world MIPS". In fact, I would say such a statement is quite wrong. MIPS is not a specific set of instructions, for example if you look at a variety of MIPS implementations currently in use at major universities you will see some significant differences. It is a family of implementations based around a common approach of a very reduced instruction set to control a processor. Many of the core instructions used in MIPS in stationeers, are close to if not exactly the same in most MIPS family implementations.
While some good answers to the OPs questions, nobody has touched on an explanation of *why* there is no else. The simple answer is that there *is* else, but that there is no short hand for IF ... ELSE. This is because underneath any IF... ELSE in programming, there are a series of instructions. With MIPS, you are operating at a lower level from high level programming - so you will need to include the logic that, combined, will reach IF.. ELSE.
The following offers a good outline of how jumps (such as IF ... ELSE) can be decomplied and represented in MIPS instructions:
https://fog.ccsf.edu/~gboyd/cs270/online/mipsII/if.html