|
看的过瘾!
//ADD(1) -- Page A7-5 | Rd = Rn + immed3 | Syntax -- ADD , , #
static _short inst_ADD_1(_ushort inst)
{
_ushort immed_3;
_ushort d,n;
_long64 Rn;
_long64 Result;
d = inst & 0x0007;
n = (inst >> 3) & 0x0007;
immed_3 = (inst >> 6) & 0x0007;
Rn = toe_r[n];
Result = Rn + immed_3;
set_NZ_flag( (_long)Result );
set_C_flag_add( Result, toe_r[n], immed_3 );
set_V_flag_add( (_long)Result, toe_r[n], immed_3);
toe_r[d] = (_long)Result;
#ifdef PRINT_TRACE_DETAIL
PRINT_ADDR_MNEMONICS;
//fprintf(stream,"ADD R%d, R%d, #%d\n", d, n, immed_3);
_S("ADD R"); _D(d); _S(", R"); _D(n); _S(", #"); _D(immed_3);
_S("\n");
PRINT_REGS;
#endif
return 0;
}
代码写的很美! |
|