第1.7__程序存储器地址生成方式.

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

1.6 数据寻址方式
累加器寻址
[例] 累加器寻址示例
READA *AR3 ;把累加器A所确定的程序 存储器单元中的值传送 给AR3指向的数据存储 器单元
WRITA *AR3 把AR3指向的数据存储 器单元的值传送到由累 加器A确定的程序存储 器单元中
1.6 数据寻址方式
直接寻址
在直接寻址方式中,指令中包含有数据存储器地址 ( dmad )的低 7位,这 7位 dmad 作为偏移地址,结合基 地址(由数据页指针DP或堆栈指针SP给出)共同形成16 位的数据存储器地址。 使用这种寻址方式,可以在不改变 DP 或 SP 的情况下,随 机地寻址 128个存储单元中的任何一个单元。直接寻址的 优点是每条指令只需要一个字。 是DP还是SP直接寻址与状态寄存器ST1中CPL位有关: 数据页指针DP直接寻址:当CPL=0时,DP直接寻址; 堆栈指针SP直接寻址: 当CPL=1时,SP直接寻址;
1.6 数据寻址方式
直接寻址
当状态寄存器ST1中CPL=0时,以数据存储器地址(dmad)的低7位 为低位,以数据页指针DP中的9位字段为高位,共同构成16位的数据存 储器地址,如下图所示。
15
14 13 12 11 10
9
8
7
6
5
4
3 7位dmad
2
1
0
9位数据页指针DP
DP作为基地址的直接寻址方式
2~0 ARF
指令的8位操作码
4位的方式域 用来定义间接寻址的类型
间接寻址
1.单操作数寻址
单数据存储器操作数的间接寻址类型
MOD域 操作数句 法 0000 (0) *ARx 0001 (1) 0010 (2) 0011 (3) 0100 (4) 功 能 说 明 ARx中的内容就是数据存储器的地址 寻址结束后, ARx中的地址值减12 寻址结束后, ARx中的地址值增11 ARx中的地址值增1后再寻址123 寻址结束后,用反向传送借位的方法从 ARx中减去AR0的值 寻址结束后,从ARx中减去AR0的值 地址=ARx 地址=ARx *ARx- ARx=ARx-1 地址=ARx *ARx+ ARx=ARx + 1 ARx=ARx + 1 *+ARx 地址=ARx +1 地址=ARx *ARx-0B ARx=B(ARx- AR0)
1.6 数据寻址方式
累加器寻址
在累加器寻址方式中,指令中利用累加器的数值作为地址 来读/写程序存储器,这种寻址方式可用来对存放数据的 程序存储器寻址。 共有两条指令可以采用累加器寻址: READA Smem WRITA Smem READA是把累加器A所确定的程序存储器单元中的一个字 传送到单数据存储器操作数Smem所确定的数据存储器 单元中。 WRITA是把Smem操作数所确定的数据单元中的一个字 传送到累加器A确定的程序存储器单元中去。
在间接寻址方式中,64K字数据空间的任意单元都可以通 过一个辅助寄存器中的内容所代表的16位地址进行访问。 TMS320C54x有8个16位辅助寄存器(AR0~AR7),2 个辅助寄存器算术单元(ARAU0和ARAU1),根据辅助 寄存器ARx的内容进行操作,完成无符号的16位算术运算。 间接寻址主要用在需要存储器地址以步进方式连续变化的 场合。当使用间接寻址方式时,辅助寄存器内容(地址) 可以被修改(如增加或减少),还可以提供循环寻址和位 倒序寻址两种特殊模式。
SP作为基地址的直接寻址方式 例如,SP=0100h,dmad=030h, 实际地址为0100h+030h=0130h。
1.6 数据寻址方式
直接寻址
[例] SP直接寻址示例
ADD 30h, A ;将实际地址为0130h的数据存储器单元内 容加到累加器A中去
1.6 数据寻址方式
间接寻址
地址=ARx 0101 (5) *ARx-0 ARx =ARx-AR0
地址=ARx 0110 (6) *ARx + 0 ARx =ARx + AR0
0111 (7) *ARx + 0B
寻址结束后,将AR0中的值加至ARx
寻址结束后,用反向传送进位的方法将AR0加至ARx
地址=ARx ARx=B(ARx + AR0)
例如:DP=1,dmad=03h,实际地址为0080h+03h=0083h。
Hale Waihona Puke Baidu 1.6 数据寻址方式
直接寻址
[例] DP直接寻址示例
ADD 30h, A ;将实际地址为00B0h的数据存储器单元内 容加到累加器A中去
1.6 数据寻址方式
直接寻址
当状态寄存器 ST1 中 CPL=1 时,数据存储器地址( dmad )的低 7 位与 堆栈指针SP的16位地址相加形成 16 位的数据存储器地址,如下图所示。
1.单操作数寻址
MOD域 操作数句 法
单数据存储器操作数的间接寻址类型
功 能 说 明
地址=ARx 1000 (8) *ARx-% ARx=Circ(ARx- 寻址结束后,ARx中的地址值按循环减的方法减11 1) 地址=ARx *ARx - 1001 (9) - 寻址结束后,按循环减的方法从ARx中减去AR0中的值 0% ARx=Circ(ARx AR0) 地址=ARx 1010 (10) *ARx + % ARx=Circ(ARx + 寻址结束后,ARx中的地址值按循环加的方法增11 1) 地址=ARx 1011 (11) *ARx ARx =Circ(ARx + 寻址结束后,按循环加的方法,将AR0中的值加至ARx +0% AR0) ARx +1k 以ARx与16位数之和作为数据存储器的地址,寻址结束后, 1100 (12) *ARx(1k) 地址= ARx= ARx ARx中的值不变 地址=ARx +1k 1101 (13) *+ARx(1k) ARx 将一个16位带符号数加至ARx后进行寻址3 = ARx + 1k 地址=Circ(ARx + 1k) 3 1110 (14) *+ARx(1k )% ARx=Circ(ARx + 将一个16位带符号数按循环加的方法加至ARx,然后再寻址 1k) 利用16位无符号数作为地址寻址数据存储器(相当于绝对寻 1111 (15) *(1k) 地址=1k 址方式)3
1.6 数据寻址方式
间接寻址
1.单操作数寻址
单操作数寻址是指一条指令中,只有一个存储器操作数 (即从存储器中只存取一个操作数)。 单数据存储器操作数间接寻址指令的格式:
指令的标识符 表示指令为间接寻址 3位辅助寄存器域 用来定义所使用的辅助寄存器
15 ~ 8 操作码
7 I=1
6~3 MOD
相关文档
最新文档