寻址方式是指根据指令中给出的地址码字段来实现寻找真实操作数地址的方式。TMS320C6x系列DSP有3种寻址方式:立即数寻址方式、寄存器寻址方式和寄存器间接寻址方式。其中,寄存器间接寻址方式又分为线性寻址方式和循环寻址方式。
TMS320C6x系列DSP采用LOAD/STORE结构,对数据存储器的访问(读取/写入)只能分别通过LD指令和ST指令完成,其他任何指令都不能访问数据存储器。TMS320C6x的LD/ST指令采用间接寻址方式,即线性寻址方式(Linear Addressing)和循环寻址方式(Circular Addressing)。
1.立即数寻址方式
立即数寻址方式的操作数直接包含在指令码中。TMS320C6x系列DSP的立即数寻址方式包括短立即数寻址方式和长立即数寻址方式。其中,短立即数为5bit,长立即数为15bit。
2.寄存器寻址方式
寄存器寻址方式的操作数包含在寄存器中,由指令指定寄存器的名称。寄存器寻址方式是大多数TMS320C6x DSP指令采用的寻址方式。
3.线性寻址方式
TMS320C6x DSP的通用寄存器都支持线性寻址方式。线性寻址方式又分为寄存器间接寻址、寄存器相对寻址、基地址+偏移量寻址3种方式,列于表2-12中。
表2-12 3种寻址方式表
(www.xing528.com)
4.循环寻址方式
TMS320C6000DSP通用寄存器A4~A7或B4~B7支持循环寻址方式。在数字信号处理中的FIR、卷积等运算中,循环寻址具有极其重要的意义。和线性寻址方式相同的是,循环寻址方式也同样包括寄存器间接寻址、寄存器相对寻址、基地址+偏移量寻址3种方式;不同之处在于,循环寻址方式的地址生成算法和线性寻址方式不同。
假设通用寄存器A4采用循环寻址方式,AMR中BK设定的缓冲区大小为16,A4的值为0x8000000c,则TMS320C6x硬件自动将缓冲区的起始地址设为0x80000000,结束地址设为0x8000000f,即缓冲区的边界要和缓冲区的大小对齐。
1)执行LDH指令,从缓冲区的0x8000000c处读取16bit到A8寄存器:
LDH指令执行后,A4自动加2,A4等于0x8000000e。
2)再次执行LDH指令,从缓冲区的0x8000000e处读取16bit到A8寄存器:
LDH指令执行后,A4自动加2,A4应该等于0x80000010。但根据循环寻址方式规则,缓冲区的起始地址设为0x80000000,结束地址设为0x8000000f,此时A4重新回到0x80000000。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。