Rev. 1.50, 10/04, page 338 of 448
TSTM(long i) /* TST.B #imm,@(R0,GBR) */
{
long temp;
temp = (long)Read_Byte(GBR+R[0]);
temp &= (0x000000FF & (long)i);
if (temp==0) T = 1;
else T = 0;
PC += 2;
}
Example:
TST R0,R0 ;Before execution R0 = H'00000000
;After execution T = 1
TST #H'80,R0 ;Before execution R0 = H'FFFFFF7F
;After execution T = 1
TST.B #H'A5,@(R0,GBR) ;Before execution (R0,GBR) = H'A5
;After execution T = 0
Possible Exceptions: Exceptions may occur when TST.B instruction is executed.
• Data TLB multiple-hit exception
• Data TLB miss exception
• Data TLB protection violation exception
• Initial page write exception
• Data address error
Exceptions are checked taking a data access by this instruction as a byte load and a byte store.