2407DSP第3章 寻址方式和指令系统

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《DSP原理及应用》
19
北京理工大学珠海学院信息学院
第3章 寻址方式和指令系统
3.2 指令系统
C24x指令的基本表达式为:
[标识符[: ]] 指令 [原操作数] [, 目的操作数] [; 注释]
例如: LOOP:ADD *+ ;将当前辅助寄存器指向单元的 内容加到累加器中 SPLK #30h ,5 ;(DP=4)将数据0030h存至数 ;据存储器单0205h处
15 8MSBs 指令类型和移位信息 8 7 0 1-间接寻址 0-直接寻址 6 7LSBs 7位偏移量 0
图2.4 指令寄存器IR内容格式
某一页上被访问的特定单元取决于7位的偏移量,由 指令寄存器的低7位决定。
《DSP原理及应用》
6
北京理工大学珠海学院信息学院
第3章 寻址方式和指令系统
应该按照下述步骤使用直接寻址方式:
13
*BR0-
《DSP原理及应用》
北京理工大学珠海学院信息学院
第3章 寻址方式和指令系统
(AR0)=0001 0000B,(AR1)=1000 0000B
RPT #3 MAR *BR0+ , AR1 执行第0次后(AR1)=1001 0000B 执行第1次后(AR1)=1000 1000B 执行第2次后(AR1)=1001 1000B 执行第3次后(AR1)=1000 0100B
《DSP原理及应用》
2
北京理工大学珠海学院信息学院
第3章 寻址方式和指令系统
3.1.1 立即寻址
所谓立即寻址方式,就是指令的操作数就是常数。 LF2407 DSP支持两种立即寻址。
短立即寻址: 使用短立即寻址的指令可以指定8、9或13位常数作操 作数。短立即寻址方式的指令只需要单个指令字,操 立即操作数前带一个#作为前缀 作数就包含在这个指令字中。
《DSP原理及应用》
4
北京理工大学珠海学院信息学院
第3章 寻址方式和指令系统
3.1.2 直接寻址方式
DP值
0000 . 00000
偏移量
000 . 0000
. .
. .
第0页:0000h~007Fh
0000
00000
111
1111
0000 . 00001
. . . .
000 . 0000
. . . .
RPT #49;把紧跟RPT指令后的那条指令执行50次 1 0 1 1 1 0 1 1 0 0 1 1 0 0 0 1
采用立即寻址的RPT代码 8位常数=49 图2.1 指令寄存器中的内容 《DSP原理及应用》
3
北京理工大学珠海学院信息学院
第3章 寻址方式和指令系统
长立即寻址:
使用长立即寻址的指令可以指定16位的常数操作数,这 时需要2个指令字,该常数为第2个指令字。
《DSP原理及应用》
17
北京理工大学珠海学院信息学院
第3章 寻址方式和指令系统
ADD *+,8,AR4; 已知ADD对应的机器码为0010B,请填写指令寄存器 中该指令的内容。
15 00101000 8 7 1 6 010 4 3 1 2 100 0
执行指令前:ARP=1,AR1=0030h,(0030h)=0001h, ACC=0000FFFFh 执行指令后:ARP=4,AR1=0031h,(0030h)=0001h, ACC=000100FFh
《DSP原理及应用》
21
北京理工大学珠海学院信息学院
第3章 寻址方式和指令系统
#
pma dma ind shift shift2 k
用在常数前,表示立即寻址
表示16bit程序存储器地址 表示直接寻址,dma为数据空间地址的低7位 表示间接寻址,ind有7种表达方式:*、*+、*-、*0+、*0-、*BR0+、*BR0表示左移位,大小为0~15,默认为0 表示左移位,大小为0~7,默认为0 表示8bit、9bit或13bit短立即数
则之前的例题中的指令SUB 2H可变成 SUB subtrahend
《DSP原理及应用》
9
北京理工大学ห้องสมุดไป่ตู้海学院信息学院
第3章 寻址方式和指令系统
3.1.3 间接寻址方式
TMS320LF2407中8个辅助寄存器(AR0-AR7)提供 了灵活而强大的间接寻址能力,在使用时,包括: 1. 设置辅助寄存器指针(ARP) 通过向状态寄存器ST0中的辅助寄存器指针(ARP) 装入0~7,可选择特定的辅助寄存器。ARP可以由 MAR或LST指令来赋值,也可以在任何间接寻址指令 内直接为紧接着的程序所需的ARP赋值。 MAR *,AR1 ;指明当前寄存器为AR1 LAR AR1,#200H ;设定AR1的值
LDP #6
15 0 0 1 1
;地址0205H位于第6页,DP重新赋值
0 0 0 1 0 0 0 0 0 0 1 0 1
SUB 5H,2 减去经过左移 2位后的0305H内的值 12 11 ;ACC 8 7 6
《DSP原理及应用》
8
北京理工大学珠海学院信息学院
第3章 寻址方式和指令系统
为了得到一个16位的地址,处理器将数据页指针DP值和指令寄
SACL *+
;将累加器低16位存于AR2所指向的地址单
;元,AR2的内容加1.
15
《DSP原理及应用》
北京理工大学珠海学院信息学院
第3章 寻址方式和指令系统
4. 间接寻址机器码格式 位15~8:指令类型和指令所访问的数据值的移位信息 位7:0表示直接寻址,1表示间接寻址
位6~4:辅助寄存器更新代码ARU
• 000——当前AR内容不变 * • 001——当前AR内容减1 *• 010——当前AR内容加1 *+ • 011——保留
• 100——当前AR内容反向借位减去AR0内容 *BR0• 101——当前AR内容减去AR0内容 *0• 110——当前AR内容加上AR0内容 *0+
• 111——当前AR内容反向进位加上AR0内容 *BR0+
ADD #16384,2 No.1 ;把长立即数16384左移2位之后加到累加器
1 0 1
1
1
1 1
1
1
0 0
1
0
0 1 左移2位
0
采用长立即寻址的ADD代码 No.2 0 1 0 0 0 0 0 0 0 0 0 0 0
0 0
0
16位常数=16384=4000h 图2.2 指令寄存器连续接收2个指令字
存器中的低7位连接起来,即DP提供地址的高9位(页码数), IR低7位提供地址低7位(偏移量)。
实际在使用直接寻址时,由于操作数对应的地址空间很难记忆,
因此再编程前先给数据空间定义一个容易记忆和识别的变量,在 使用时直接用此变量代替操作数的偏移地址。
例如: 事先定义 subtrahend .set 302H
第511页: FF80h~FFFFh
北京理工大学珠海学院信息学院
. .
111
1111
5
《DSP原理及应用》
第3章 寻址方式和指令系统
15~13 ARP
12 OV
11 OVM
10 1
9 INTM
8 DP
0
图2.3 ST0内容格式
当前数据页由状态寄存器ST0中的9位数据页指针( DP)决定;可以通过LDP或LST指令对当前DP赋值。
设置数据页
LDP #32 ADD 5H ; 设置当前数据页为32 ;将当前数据页中偏移量为5处的数据加至 ;累加器 指明偏移量
任何程序都要初始化DP, 因为复位并不能使DP初始化, 因此上电时DP值是不确定的。
7
《DSP原理及应用》
北京理工大学珠海学院信息学院
第3章 寻址方式和指令系统
例 数据存储器空间64H内的值与数据存储器空间50H内 的值相加,再减去左移2位数据存储器空间305H内的 值。 LDP #0H LACC 64H ADD 50H ;地址0064H位于第0页 ; 将地址0064h内的值装载到累加器中 ; 地址0050H仍然位于第0页,所以不需 ; 要修改DP
位3:下一辅助寄存器指示符,N=0,ARP内容不变,N=1 ,下一个辅助寄存器AR被装进ARP 位2~1:下一辅助寄存器的值
15 8MSBs 8 7 1 6 ARU 4 3 N 2 NAR 0
《DSP原理及应用》
16
北京理工大学珠海学院信息学院
第3章 寻址方式和指令系统
其中6~4位更新代码ARU
《DSP原理及应用》
18
北京理工大学珠海学院信息学院
第3章 寻址方式和指令系统
• 例 将数据控件300H后的10个偶数地址清0。
MAR *, AR1 LAR AR1, #300H LAR AR0, #2H LACL #0H RPT #9 SACL *0+ ;ARP=001B ;寻址累加索引量为2 ;下一条指令将重复执行10次 ; ACC→(AR1),(AR1)+(AR0) →AR1
LACC *+ 用当前AR所指数据存储器地址中内容装 载累加器,然后当前AR内容加1 LACC *用当前AR所指数据存储器地址中内容装载 累加器,然后当前AR内容减1 LACC *0+ 用当前AR所指数据存储器地址中内容装 载累加器,然后当前AR内容加上AR0的内容 LACC *0用当前AR所指数据存储器地址中内容装 载累加器,然后当前AR内容减去AR0的内容 LACC *BR0+ 用当前AR所指数据存储器地址中内 容装载累加器,然后当前AR内容加上AR0的内容,该 加法采用反向进位(向低位进位) LACC *BR0用当前AR所指数据存储器地址中内容 装载累加器,然后当前AR内容减去AR0的内容,该减 法采用反向进位(向低位借位)
第1页:0080h~00FFh
0000 00001 0000 . 00010
111 1111 000 . 0000
第3页:0100h~017Fh
0000
00010
111
1111
. . . . . .
1111 1111 11111 11111
. . . . . .
000 . 0000
. . . . . .
《DSP原理及应用》
10
北京理工大学珠海学院信息学院
第3章 寻址方式和指令系统
2. 间接寻址选项 ARAU(辅助寄存器算术单元)可以对8个AR的内 容进行独立、并行的算数操作。包括: 辅助寄存器值自动加减1或加减一个索引量; 通过ADRK指令加8bit常数,通过SBRK指令减去一个 8bit常数; 将当前AR值与AR0比较,根据比较结果置ST1的TC 位
《DSP原理及应用》
20
北京理工大学珠海学院信息学院
第3章 寻址方式和指令系统
表达符
ACC 32位累加器 AR 辅助寄存器 ARn 当前辅助寄存器指针修改后的辅助寄存器 TRRG 临时寄存器 PREG 乘积寄存器 PC 程序计数器 MSTACK 用于临时存储PC值的微堆栈 STACK 8级堆栈 TOS 栈顶指针 repeat counter 单指令重复计数器 [ , x] 表示操作数是可选的 [ , x1 [ , x2] ] 表示操作数x1、x2都是可选的,但x2使用的前提是已使 用了x1
《DSP原理及应用》
14
北京理工大学珠海学院信息学院
第3章 寻址方式和指令系统
3. 辅助寄存器 除了更新当前辅助寄存器的内容以外,间接寻址指令 还可以指明下一个辅助寄存器AR,当本指令执行完之
后,下一个AR便成为当前AR。
例 选择一个当前的辅助寄存器AR
MAR *,AR1 ;将AR1设为当前AR
LACL *+,AR2;用AR1所指向的地址内容装载累加器的低16 ;位,AR1内容加1,将AR2设为新的当前AR
第3章 寻址方式和指令系统
第3章 寻址方式和指令系统
《DSP原理及应用》
1
北京理工大学珠海学院信息学院
第3章 寻址方式和指令系统
3.1 寻址方式
TMS320LF2407指令集包括三种基本的存储器寻址方 式,分别是立即寻址方式、直接寻址方式和间接寻址 方式。 立即寻址方式:即需要寻找的数就在指令里,不需 要到存储器中去找,也称为立即数寻址方式。 直接寻址方式:指令给出的是需要寻找的数的地址 ,按此地址直接去访问。 间接寻址方式:即指令给出的既不是立即数也不是 直接地址,而是将此地址(或寄存器)的内容再作为 地址。
《DSP原理及应用》
11
北京理工大学珠海学院信息学院
第3章 寻址方式和指令系统
LF2407完成间接寻址后提供四种更新选项:
不增不减 增1或减1 增加或减少一个索引量 按反向进位方式增加或减少索引量
《DSP原理及应用》
12
北京理工大学珠海学院信息学院
第3章 寻址方式和指令系统
选项 不增不减 增1 减1 加上索引量 加上索引量 加上索引量,反 向进位 减去索引量,反 向借位 操作数 * *+ **0+ *0*BR0+ LACC * 载累加器 例子 用当前AR所指数据存储器地址中内容装
相关文档
最新文档