DSPC2000汇编指令.pdf
文本预览下载声明
第六章 DSP的寻址方式和汇编指令
当硬件执行指令时,寻找指令所指定的参与运算飞操作数的方式——寻址方式。根据
程序的要求采用不同的寻址方式,可以有效地缩短程序的运行时间和提高代码执行效率。汇
编指令是可执行指令,每一条指令对应一条机器码,用来控制处理器仲的执行部分进行各种
操作。在本章节当中将主要以基于 C28x 的 DSP 芯片为例,为读者讲解 DSP 的寻址方式和汇
编指令系统,其中大部分内容也可适用于其他 Ti 公司的DSP产品。
6.1 汇编语言指令集概述
在学习 C28x 系列 DSP 的寻址方式和汇编指令指令之前,先来对一些基础的知识进行讲
解一下先,在汇编程序当中开发人员会常常使用到许多的特殊符号和标志,它们都具有特殊
的含义,在学习汇编之前读者们必须先理解这些符号和标志含义,在这里会对其中最常用最
重要的操作数符号和寄存器经行详细说明。
在进行汇编讲解之前先来了解一下开发的核心——CPU。在 TMS320C2000 系列中,CPU
内核为:
C20x/C24x/C240x:C2xLP:
C27x/C28x:C27x、C28x
这些 CPU 的硬件结构有一定差别,指令集也不相同,但是,在 C28x 芯片中可以通过选择兼
容特性模式,使 C28xCPU 与 C27xCPU 及 C2xLPCPU 具有最佳兼容性。可通过状寄存器 STl 的
位 OBJMODE和位 AMODE的组合,选定模式。
C28x 芯片具有 3 种操作模式:
1. C28x 模式:在该模式中,用户可以使用 C28x 的所有有效特性、寻址方式和指令系统,
因此,一般应使 C28x 芯片工作于该种模式。
2. C27x 目标——兼容模式:在复位时,C28x 的 CPU 处于 C27x 目标-兼容模式。在该模式
下,目标码与 C27xCPU完全兼容,且它的循环—计数也与 C27xCPU 兼容。
3. C2xLP 源——兼容模式:该模式允许用户运行 C2xLP 的源代码,这些源代码是用 C28x
代码生成工具编译生成的。
在下面的讲解当中会牵涉到模式的转换,希望读者要搞清楚每一个模式的对应关系。
本节假设条件为芯片工作于 C28x 模式(OBJMODE=1,AMODE=0)。复位后,通过执行指令
C28OBJ 或者SETC OBJMODE 将ST1 中的 OBJMODE位置 1,芯片即可工作于 C28x 模式。
6.1.1 DSP中的操作数
汇编语言离不开操作符和操作数,操作符可以认为就是 CPU的指令或者编译器上的伪指
令,操作数是指令执行过程中的参与者,也可以说操作数就是指令所控制的对象。
如表 6-1,表6-2 和表6-3对指令中常用到的一些操作数符号进行说明
符号 描述
XARn 32 位辅助寄存器 XAR0~XAR7
ARn,ARm 32 位辅助寄存器 XAR0~XAR7 的低 16 位
ARnH 32 位辅助寄存器 XAR0~XAR7 的高 16 位
ARPn 32 位辅助寄存器指针,ARP0 指向XAR0,ARP1 指向 XAR1……
AR(ARP) ARP 指向的辅助寄存器的低 16 位
XAR(ARP) ARP 指向的辅助寄存器
AX 累加器的高 16 位寄存器AH 或者16 位寄存器 AL
# 立即数助记符
PM 乘积移位方式(+4 ,1 ,0 ,-1,-2,-3,-4 ,-5 ,-6)
PC 22 位程序计数器
~ 按位求反码
[loc16] Loc16 寻址方式对应的 16位数据
0:[loc16] 将 Loc16 寻址方式对应的 16 位数据进行零扩展
S:[loc16] 将 Loc16 寻址方式对应的 16 位数据进行符号扩展
[loc32] Loc32 寻址方式对应的 32位数据
0:[loc32] 将 Loc32 寻址方式对应的 32 位数据进行零扩展
S:[loc32] 将 Loc32 寻址方式对应的 32 位数据进行符号扩展
7bit 表示 7 位立即数
0:
显示全部