Rev. 1.50, 10/04, page 326 of 448
STSMMACH(int n) /* STS.L MACH,@-Rn */
{
R[n] –= 4;
Write_Long(R[n],MACH);
PC += 2;
}
STSMMACL(int n) /* STS.L MACL,@-Rn */
{
R[n] –= 4;
Write_Long(R[n],MACL);
PC += 2;
}
STSMPR(int n) /* STS.L PR,@-Rn */
{
R[n] –= 4;
Write_Long(R[n],PR);
PC += 2;
}
Example:
STS MACH,R0 ; Before execution R0 = H'FFFFFFFF, MACH = H'00000000
; After execution R0 = H'00000000
STS.L PR,@-R15 ; Before execution R15 = H'10000004
; After execution R15 = H'10000000, (R15) = PR
Possible Exceptions:
• Data TLB multiple-hit exception
• Data TLB miss exception
• Data TLB protection violation exception
• Initial page write exception
• Data address error