资源描述:
《TMS320C6000内联指令汇编.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、内联指令汇编指令简要描述图示int_abs(intsrc);int_labs(__int40_tsrc)ABS返回src的绝对值int_add2(intsrc1,intsrc2)ADD2把src1的高、低16位和src2的高、低16位分别相加,放入结果的高、低16位ushort&_amem2(void*ptr);LDHUSTHU从内存中加载一个halfword到dst里,必须2byte对齐(读或存)constushort&_amem2_const(constvoid*ptr);LDHU必须2byte对齐(读)
2、unsigned&_amem4(void*ptr);LDWSTW必须4byte对齐(读或存)constunsigned&_amem4_const(constvoid*ptr);LDW必须4byte对齐(读)double&_amemd8(void*ptr);LDW/LDWSTW/STW必须8byte对齐(读或存)constdouble&_amemd8_const(constvoid*ptr);LDDW必须8byte对齐(读)unsigned_clr(unsignedsrc2,unsignedcsta,unsig
3、nedcstb);CLR指定了从需要清0的首位和末位unsigned_clrr(unsignedsrc2,intsrc1);CLR将src2中指定位清0,清0的首位和末位由src1的低10位指定__int40_t_dtol(doublesrc);将一个double寄存器重新解释成一个__int40_tlonglong_dtoll(doublesrc);将一个double寄存器重新解释成一个longlongint_ext(intsrc2,unsignedcsta,unsignedcstb);EXT从src2里提
4、取csta和cstb指定的区域且符号扩展到32位。提取出的区域先符号左移再右移。int_extr(intsrc2,intsrc1);EXT同上,区别:左右移的位数由src1的低10位指定unsigned_extu(unsignedsrc2,unsignedcsta,unsignedcstb);EXTU同上上,区别最后是0扩展到32位。unsigned_extur(unsignedsrc2,intsrc1);EXTU同上,区别:左右移的位数由src1的低10位指定例:_ftoi(1.0)==1065353216
5、Uunsigned_ftoi(floatsrc);将float的比特位解释成unsignedunsigned_hi(doublesrc);返回double寄存器的高位(奇数位)unsigned_hill(longlongsrc);返回longlong寄存器的高位(奇数位)double_itod(unsignedsrc2,unsignedsrc1);创建一个新的double寄存器为了解释2个unsigned的值,其中src2是高(奇数)寄存器,src1是低(偶数)寄存器float_itof(unsignedsr
6、c);将unsigned中的比特位解释成float例:_itof(0x3f800000)=1.0longlong_itoll(unsignedsrc2,unsignedsrc1);创建一个新的longlong寄存器为了解释2个unsigned的值,其中src2是高(奇数)寄存器,src1是低(偶数)unsigned_lmbd(unsignedsrc1,unsignedsrc2);LMBD搜索src2里面的1或0,1或0是由src1的LSB决定的,返回比特位变化的位数unsigned_lo(doublesrc)
7、;返回double寄存器的低(奇数)寄存器unsigned_loll(longlongsrc);返回longlong寄存器的低(奇数)寄存器double_ltod(__int40_tsrc);把一个__int40_t寄存器解释成一个double寄存器double_lltod(longlongsrc);把一个longlong寄存器解释成一个double寄存器int_mpy(intsrc1,intsrc2);MPYSrc1和src2相乘,操作数默认为有符号的int_mpyus(unsignedsrc1,intsr
8、c2);MPYUS无符号src1和有符号src2相乘,S是用来那个是有符号的操作数,当两个操作数都是有符号的或者无符号的int_mpysu(intsrc1,unsignedsrc2);MPYSU同上unsigned_mpyu(unsignedsrc1,unsignedsrc2);MPYU同上上上,默认为无符号int_mpyh(intsrc1,intsrc2);MPYH同上,区别见图示int_mpyh