当前位置:文档之家› 第4章 'C54x的数据寻址方式-剪

第4章 'C54x的数据寻址方式-剪

2014年1月14日 DSP原理及应用
中的数据送入累加器 的单元数据送入AR1 A中 寄存器
8
绝对寻址是利用16位地址来寻址操作数的存储 单元。由于绝对地址代码的位数为16位,所以绝对 地址寻址的指令至少应为2个字长。 绝对寻址有四种类型 : ① 数据存储器地址(dmad)寻址;
② 程序存储器地址(pmad)寻址;
主要用于初始化 利用16位地址寻址存储单元 将累加器中的内容作为地址 利用数据页指针和堆栈指针 寻址 利用辅助寄存器作为地址指 针 快速寻址存储器映象寄存器 压入/弹出数据存储器和存储 器映像寄存器MMR
LD #10,A STL A,*(y) READA x LD @x,A LD *AR1,A LDM ST1,B PSHM AG
1
4.0 寻址方式
当硬件执行指令时,寻找指令所指定的参与
运算的操作数的方法——寻址方式。
根据程序的要求采用不同的寻址方式,可以有
效地缩短程序的运行时间和提高代码执行效率。
’C54x芯片的寻址方式可以分为两类:
● 数据寻址
2014年1月14日
● 程序寻址
DSP原理及应用 2
’C54x有7种基本的数据寻址方式:
据相加
2014年1月14日 DSP原理及应用
22
直接寻址特点:
① 所寻址数据存储器的16位地址是由DP或SP 与7位偏移地址dmad构成; ② 可在单周期寻址128个单元; ③ 寻址速度快,能进行流水线并行操作。 用途:主要用于要求运算速度较快的场合。 注意:① 上述两种直接寻址方式是相互排斥的; ② 采用DP寻址时,要注意数据所在的页面 指针。
立即寻址 :由指令提供一个操作数 绝对寻址 :由指令提供一个操作数地址 累加器寻址 :以累加器的内容为地址访问程序空间某单元 直接寻址 :寻址地址为DP或SP的值加上指令提供的偏移量 间接寻址 :利用辅助寄存器访问存储器 存储器映像 :用来改变映像寄存器,但不影响DP或SP的值 寄存器寻址 堆栈寻址 :用来管理系统堆栈中的操作
程序存储器的 16位地址pmad值
2014年1月14日 DSP原理及应用 11
3.端口(PA)寻址
用一个符号或一个常数来确定外部I/O端口的
地址。 例如,把一个数从端口为FIFO的I/O口复制到 AR5寄存器所指向的数据存储单元中。 PORTR FIFO, * AR5
I/O端口地址PA
2014年1月14日
结果 DP dma ;CPL 复位 0000 1500 dma A 00 DP 0 0000 0011 111 1111 0 0000 0011 DP000 111 0000 1111 ;立即数 A 3赋给 @x
;x 单元的数据送入 A 机器码 0 0000 0011 111 1111 操作码 0 111 1111 @x 00 00 0000 0000 1000 1001 01 FF
特点:指令中含有一个固定的立即数,运行速度 较快,但需占用程序存储空间,并且数值不能改变。
立即数80H
用途:用于表示常数或对寄存器初始化。
2014年1月14日 DSP原理及应用 6
支持立即数的指令
3位 立即数 LD 5位 立即数 LD 8位 立即数 FRAME LD RPT 9位 立即数 LD ADD ANDM LD ORM ST XOR 16位 立即数 ADDM BITF MAC RPT STM XORM AND CMPM OR RPTZ SUB
2014年1月14日
DSP原理及应用
4
部分寻址缩略语
缩略语
Smem Xmem
Ymem dmad pmad

16位单寻址操作数

16 位双寻址操作数,用于双操作数或部分单操作数指 令,从DB数据总线上读取
16位双寻址操作数,用于双操作数指令,从CB数据总 线上读取 16位立即数:数据存储器地址(0~65 535) 16位立即数:程序存储器地址(0~65 535)
2014年1月14日
DSP原理及应用
21
例2:数据存储器存储数据如图所示,利用堆栈指针SP直 接寻址,求堆栈中距栈顶两个数x,y的和。
数据存储器
SP→ x: y:
0020
0100 0050 A000
. . .
SSBX LD
1 2
执行结果 SP 0000 0010 0000 CPL ;CPL 置位
@1,A ;x单元的数据送入A
DP 0011 0 000 0000 操作码 @y 0 0000 0180H 0001 1 800 @y 据相加
00 0000 1500 0200H 0500
0200
A 1000 00 0000 1500
0 1@x FF
dma 结果 LD #4,DP + 000 @y1001 0200H 0500 0 0000 0100 0000 + ;机器码 完成 x 和 y 单元的数 00 0000 1001 A
注意:在立即寻址的指令中,应在数值或符号前面加 一个“#”,表示是一个立即数,以区别于地址
2014年1月14日

DSP原理及应用
7
4.2 绝对寻址
指令中包含要寻址的存储单元的16位地址。
16位地址表示形式: ① 地址标号,如:TABLE; ② 16位符号常量,如:89AB、1234。 特点:指令中包含一个固定的16位地址,能寻 例如:址所有数据存储空间,但运行速度慢, 需要较大的存储空间。 MVKD TABLE,*AR1;将 ;将数据存储器 TABLE为地址 LD *(DATA),A DATA指定的数据存储单元 用途:用于对速度要求较低的场合。 指定的数据存储单元中
当CPL=1时,
直接寻址 指 令
15~8 7 6~0
操作码
I=0
dmad
堆栈指针SP
16位堆栈指针SP
SP+dmad
16位数据 存储器地址 16位SP+dmad 高 9位
2014年1月14日 DSP原理及应用
dmad
低 7位
18
4.4 直接寻址
DP地址的范围是从0~511(29-1),将存储器分成 512页。 7 位 dmad 范围是从 0 ~ 127 ,每页有 128 个可以访 问的单元。
+
dmay
X地址
0000 0200H A 00 0000 0150 dmax0150 000 0001 A 00 0000 0100 @1=0201H
000 0010 0202H 0050 @2=0202H
y地址 0 2 0 2
0201 x和y单元的数 ADD @2,A ;完成 00 0000 0150
DSP原理及应用
12
4. *(lk)寻址 使用一个指定数据空间的地址来确定数据存 储器中的一个地址。 语法:允许所有使用单数据存储器(Smem)寻址 的指令去访问数据空间的任意单元,而 不改变DP的值,也不用对AR进行初始化。 例如,把地址为PN的数据单元中的数据装到累 加器A中。 LD *(PN), A
② 在偏移量前加@,如@5。
利用直接寻址可以在不改变DP或SP的情况下, 随机寻址128个存储单元中的任何一个单元。 直接寻址的优点:每条指令只需要一个字。
2014年1月14日
DSP原理及应用
20ቤተ መጻሕፍቲ ባይዱ
4.4 直接寻址
例 1 :数据存储器存储数据如图所示,采用数据页指针 DP直接寻址,完成x,y单元的两个数据求和。
③ 端口(PA)寻址;
④ *(lk)寻址。
2014年1月14日 DSP原理及应用 9
1.数据存储器地址寻址
用于确定操作数存于数据存储单元的地址。
语法:使用一个程序标号或一个数字来指定数
据空间的一个地址。
例如,将数据存储器EXAM1地址单元中的数据复 制到AR5寄存器所指向的数据存储单元中。 MVKD EXAM1, * AR5
2014年1月14日 DSP原理及应用 3
寻址方式 立即寻址 绝对寻址 累加器寻址 直接寻址 间接寻址 存储器映像 寄存器寻址 堆栈寻址




指令含义 立即数10 A 将AL内容存入y所在的存储单 元 将A的内容作为地址读程序存 储器,并存入x存储单元 (DP+x的低7位地址) A ((AR1)) A (ST1) B (SP)-1 SP,(AG) (SP)
2014年1月14日 DSP原理及应用 16
地址形成过程:
当CPL=0时,
直接寻址 指 令
页指针DP (位于ST0中)
15~8 7 6~0
操作码
I=0
dmad
9位数据页指针DP
16位数据 存储器地址
9位数据页指针DP
dmad
高 9位
2014年1月14日 DSP原理及应用
低 7位
17
地址形成过程:
2014年1月14日 DSP原理及应用 14
存储器中的数据,并将数据送 入Smem指定的数据存储单元。
4.4 直接寻址
利用数据指针DP和堆栈指针SP寻址。 指令格式:
15 ~ 8 7 6~0
操 作 码
I=0
数据存储器地址(dmad)
特点:① 指令中只含有数据存储器的低7位地 指令的标识符 数据存储器地址 址(偏移地址 dmad); 指令的8位操作码 包含了数据存储器偏移地址 表示指令为直接寻址 ② 16位数据存储器地址由基地址(数据 页指针DP或堆栈指针SP)和偏移地址 (dmad)共同构成。
第4章 数据寻址方式
内容提要
’C54x的指令系统包含助记符指令和代数指令 两种形式。 助记符指令:是一种采用助记符号表示的类似 于汇编语言的指令; 代数指令:是一种比汇编语言更高级,类似于 高级语言的代数形式指令,具有接近汇编语言的特 点。 本章着重介绍七种寻址方式
相关主题