PowePC Instructions - muneeb-mbytes/computerArchitectureCourse GitHub Wiki
POWER PC INSTRUCTIONS
There are namely 3 instructions in POWER PC architecture which follows as
- Immediate /base addressing
- Register addressing
- Indexed addressing
Immediate /base addressing
It has a 6-bit opcode, 5-bit register fields and 16 bit constant. The structure resembles immediate addressing or base addressing in MIPS, having identical formats. Also, Base addressing is used for memory access, while immediate addressing used for arithmetic and logical operations.
Register addressing
Here it has 6 bit opcode, 5-bit register fields along with opcode extension of 10 bit and a single bit condition register R. When there is a need of extending instructions, so with this opcode extension it can be done which actually is a group of instructions have same opcode.
Next comes a condition register where a single bit which is used to control the condition of instruction by enabling it. This is helpful when we have some instruction which is not needed to be performed now, so that will be disabled and enabled for later testing.
Indexed addressing
This particular mode is used for accessing memory. Here it has got opcode, reg fields and size, sign, updata bits. Basically there is a constant and a value which is coming from a register the two are added up. Now the question arises how to distinguish the two values are different. The indexing mode comes here to solve as this mode has a base register and index register.
The base register which might carry the start address of an array while the index register carries the value which is specified to that index. Here as the data is being accessed as array of bytes or array of words, a feature of size is mentioned which specifies the size of the data.
Also a sign feature which helps in choosing which operation to be performed like addition or subtraction. And finally when the operation is done, if it needs to be updated to the base register or not to be decided by update feature.
So basically something like autoincrementing and autodecrementing happens where addresses get modified and new values were added which goes back to base register which is all in control which make it more versatile.