Rev. 1.50, 10/04, page 232 of 448
R[n] -= tmp2;
tmp1 = (R[n]>tmp0);
switch(Q){
case 0:Q = (unsigned char)(tmp1==0);
break;
case 1:Q = tmp1;
break;
}
break;
}
break;
}
T = (Q==M);
PC += 2;
}
Example 1:
;R1 (32 bits) ÷ R0 (16 bits) = R1 (16 bits); unsigned
SHLL16 R0 ;Set divisor in upper 16 bits, clear lower 16 bits to 0
TST R0,R0 ;Check for division by zero
BT ZERO_DIV ;
CMP/HS R0,R1 ;Check for overflow
BT OVER_DIV ;
DIV0U ;Flag initialization
.arepeat 16 ;
DIV1 R0,R1 ;Repeat 16 times
.aendr ;
ROTCL R1 ;
EXTU.W R1,R1 ;R1 = quotient