1)循环寻址循环缓冲区的长度值存放在循环缓冲 区长度寄存器BK中,BK中的数值由指令设定。长度为R 的循环缓冲器必须从一个N位地址的边界开始,即循环 缓冲器基地址的最低N位必须为0。N是满足2N>R的最 小整数。R的值必须装入BK 例如,含有31个字的循环缓冲器必须从最低5位为0的 地址开始,即 XXXXXXXX XXX00000,N=5,2N=25> R=31,且31必须装入BK。如: STM #lk, BK 如果R=32,则最小的N值为6,循环缓冲区的起始地址 必须有6个最低有效位为0,即×××××××× ×0000002
17 1) 循环寻址 循环缓冲区的长度值存放在循环缓冲 区长度寄存器BK中,BK中的数值由指令设定。长度为R 的循环缓冲器必须从一个N位地址的边界开始,即循环 缓冲器基地址的最低N位必须为0。N是满足2 N>R的最 小整数。R的值必须装入BK。 例如,含有31个字的循环缓冲器必须从最低5位为0的 地址开始,即xxxx xxxx xxx0 00002,N=5,2 N=2 5> R=31,且31必须装入BK。如: STM #1k,BK 如果R=32,则最小的N值为6,循环缓冲区的起始地址 必须有6个最低有效位为0,即×××× ×××× ××00 00002
小命 2)位倒序寻址在这种寻址方式中,用AR0存放 FFT点数的一半整数N,用另一辅助寄存器指向一数据 存放的物理单元。当使用位倒序寻址把ARO加到辅助寄 存器中时,地址以位倒序的方式产生,即进位是从左 向右,而不是从右向左进位。 例如:01101000 +00001000 01100100 以8位辅助寄存器为例,AR1表示了在存储器中数 据的基地址(011000002,ARO的值为(00001000 )2。利用以下两条语句可以向外设口(口地址为PA) 输出整序后的FFT变换结果: RPT #15 重复执行下条指令15+1次 PORTW米AR1+0B,PA向外设口PA输出整结果
18 2) 位倒序寻址 在这种寻址方式中,用AR0存放 FFT点数的一半整数N,用另一辅助寄存器指向一数据 存放的物理单元。当使用位倒序寻址把AR0加到辅助寄 存器中时,地址以位倒序的方式产生,即进位是从左 向右,而不是从右向左进位。 例如: 0110 1000 + 0000 1000 0110 0100 以8位辅助寄存器为例,AR1表示了在存储器中数 据的基地址(0110 0000)2,AR0的值为(0000 1000 )2。利用以下两条语句可以向外设口(口地址为PA) 输出整序后的FFT变换结果: RPT #15 重复执行下条指令15+1次 PORTW *AR1+0B,PA 向外设口PA输出整结果
小命 位倒序对FFT变换结果的序号调整 ARI修改 存储单 整序前FFT 循环值 元地址 变换结果 位倒序 AR更新的地址值整序后PA输出的 AR0=00010002 FT变换结果 0000 X(0) 0000 01100000 X(0) 0001 X(8) 1000 01101000 X(1) 0010 X(4) 0100 01100100 X(2) 0011 X(12) 1100 01101100 X(3) 23456789 0100 X(2) 0010 01100010 X(4) 0101 X(10) 1010 01101010 X(5) 0110 X(6) 0110 01100110 X(6) 0111 X(14) 1110 01101110 X(7) 1000 X(1) 0001 01100001 X(8) 1001 X(9) 1001 01101001 X(9) 10 1010 X(5) 0101 01100101 X(10) 1011 X(13) 1101 01101101 X(11) 12 1100 X(3) 0011 01100011 X(12) 13 1101 X(11) 1011 01101011 X(13) 14 1110 X(7) 0111 0110011 X(14)19 X(15) 1111 01101111 X(15)
19 AR1修改 循环值 存储单 元地址 整序前FFT 变换结果 位倒序 AR1更新的地址值 AR0=0000 10002 整序后PA输出的 FFT变换结果 0 0000 X(0) 0000 0110 0000 X(0) 1 0001 X(8) 1000 0110 1000 X(1) 2 0010 X(4) 0100 0110 0100 X(2) 3 0011 X(12) 1100 0110 1100 X(3) 4 0100 X(2) 0010 0110 0010 X(4) 5 0101 X(10) 1010 0110 1010 X(5) 6 0110 X(6) 0110 0110 0110 X(6) 7 0111 X(14) 1110 0110 1110 X(7) 8 1000 X(1) 0001 0110 0001 X(8) 9 1001 X(9) 1001 0110 1001 X(9) 10 1010 X(5) 0101 0110 0101 X(10) 11 1011 X(13) 1101 0110 1101 X(11) 12 1100 X(3) 0011 0110 0011 X(12) 13 1101 X(11) 1011 0110 1011 X(13) 14 1110 X(7) 0111 0110 0111 X(14) 15 1111 X(15) 1111 0110 1111 X(15) 位倒序对FFT变换结果的序号调整
小命 5.间接寻址 (2)双操作数寻址方式 MPY米AR2,*AR3,A 15~8 65 43 21 0 操作码 Xmod a Mod Yar 定义用于 确定 确定 包含 定义用于 包含 访问 Xmem X 访问Ymem Mem 操作数的地址 操作数的 地址 间接寻址的辅 间接寻址 的辅 方式的类/助寄 方式的类 助寄 型 存器 存器
20 5.间接寻址 (2)双操作数寻址方式 确定 包含 Xmem 地址 的辅 助寄 存器 确定 包含 Ymem 地址 的辅 助寄 存器 定义用于 访问Ymem 操作数的 间接寻址 方式的类 型 定义用于 访问Xmem 操作数的 间接寻址 方式的类 型 MPY *AR2,*AR3,A
小命 Xar或Yar辅助寄存器 辅助 00 AR2 寄存器 01 AR3 选择 10 AR4 AR5 双数据存储器操作数寻址的类型 Xmod或操作码语 Mod 法 功能 说明 *ARx addr=ARx ARx是数据存储器地址 addr=ARx *ARx 访问后,ARx中的地址减1 ARx=ARx-1 addr=ARx 10 *ARx+ 访问后,ARx中的地址加1 ARX=ARX+I addr=ARx ARx=circ 访问后,AR0以循环寻址的 *ARx+0%o ARx+ARO) 方式加到ARx中21
21 Xar或Yar 辅助寄存器 00 AR2 01 AR3 10 AR4 11 AR5 辅助 寄存器 选择 Xmod或 Ymod 操作码语 法 功 能 说 明 00 *ARx addr=ARx ARx是数据存储器地址 01 *ARxaddr=ARx ARx=ARx-1 访问后,ARx中的地址减1 10 *ARx+ addr=ARx ARx=ARx+1 访问后,ARx中的地址加1 11 *ARx+0% addr=ARx ARx=circ( ARx+AR0) 访问后,AR0以循环寻址的 方式加到ARx中 双数据存储器操作数寻址的类型