操作码(opcode)就是操作指令,表示该指令应进行什么性质的操作。CPU从程序计数器(PC寄存器)中得到操作码的地址,然后从程序存储空间获取操作码,然后译码,取出操作数,最后执行。
下面以在.D Functional Unit中执行的LDW指令(Load Word From Memory With a 5-Bit Unsigned Constant Offset or Register Offset)讲解。以下内容可参考TMS320C66x_DSP_CPU_and_Instruction and Set.pdf文档中Appendix C。
Table C-2 列出了.D unit的opcode所使用的符号及其意义。
Table C-3为Table C-2中mode符号的编码。
LDW指令,Syntax与opcode格式。
TI C66x DSP汇编,0x1083F62C为opcode的地址,0x021002E6为opcode,"LDW.D2T2 *+B4[0],B4"为opcde的译码结果。0x021002E6 = 0b100001 00000000 0010 1110 0110,结合以上各图,可知table C-2中的符号的值为,s=1(使用B组寄存器),y=1(使用.D2 unit,因为每个CPU有两个data path,所以有两个.D unit,.D1与.D2),mode = 1(根据table C-3,可知使用的是*+R[ucst5]格式),offsetR/ucst5=0(表示无偏移,即等于0),baseR=4(根据s=1,即使用了B组寄存器,所以这里4表示B4寄存器),dst=4(同样表示B4寄存器)。所以对0x021002E6的译码结果就是LDW.D2T2 *+B4[0],B4。
TI C66x DSP 指令集 -之- 操作码(opcode)详解,布布扣,bubuko.com
TI C66x DSP 指令集 -之- 操作码(opcode)详解
原文:http://blog.csdn.net/yiyeguzhou100/article/details/25103819