Rev. 1.50, 10/04, page 273 of 448
Operation:
MOVBS4(long d, long n) /* MOV.B R0,@(disp,Rn) */
{
long disp;
disp = (0x0000000F & (long)d);
Write_Byte(R[n]+disp,R[0]);
PC += 2;
}
MOVWS4(long d, long n) /* MOV.W R0,@(disp,Rn) */
{
long disp;
disp = (0x0000000F & (long)d);
Write_Word(R[n]+(disp<<1),R[0]);
PC += 2;
}
MOVLS4(long m, long d, long n) /* MOV.L Rm,@(disp,Rn) */
{
long disp;
disp = (0x0000000F & (long)d);
Write_Long(R[n]+(disp<<2),R[m]);
PC += 2;
}
MOVBL4(long m, long d) /* MOV.B @(disp,Rm),R0 */
{
long disp;
disp = (0x0000000F & (long)d);
R[0] = Read_Byte(R[m]+disp);
if ((R[0]&0x80)==0) R[0] &= 0x000000FF;
else R[0] |= 0xFFFFFF00;
PC += 2;
}