- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[工学]第3章汇编语言指令系统20110918
在DSP应用中,虽然可以使用C/C++高级语言编程,降低了对编程者的要求,但在一些实时性要求高的场合仍然需要采用汇编编程,以充分利用DSP丰富的硬件资源,发挥它的实时运算能力。 用汇编语言编程,要求编程者对DSP的低层有充分的了解,包括硬件结构、存储器空间模型和I/O口的组织等。同时又要求编程者对指令系统有深刻的了解。 C54x 指令集包括: 本章介绍C54x DSP的汇编语言指令系统。与其它CPU的指令集相同,汇编语言指令又称为硬指令,它们在汇编和连接后形成可执行的机器码,供DSP进行运算和其它操作。 汇编语言指令 汇编伪指令 宏指令 指令系统中采用的符号和缩写如下列表中所示 本节以LD装载指令为例,说明指令的格式和其它一些有用信息。 汇编语法 操作数 指令代码 执行 状态位 说明 指令字长 周期数 C54x的寻址方式共有下列7种: 第3章 汇编语言指令系统 3.2.1 立即寻址 立即寻址是指指令中的操作数是一个立即数,用#表示 可使用立即寻址的指令及立即数的位数如下表所示: 相关指令如下表所示: 有两条指令采用这种寻址方式 : A→PAR , 第3章 汇编语言指令系统 3.2.3 累加器寻址 直接寻址是指利用指令中的地址偏移量dma与数据页指针DP或堆栈指针SP组合,找到数据空间中的一个16位地址的方式。 指令代码格式如下所示: CPL=0时 CPL=1时 第3章 汇编语言指令系统 3.2.4 直接寻址 间接寻址是指通过两个辅助算术逻辑单元ARAU0、ARAU1及8个辅助寄存器AR0~AR7,间接获得数据存储器地址的方式。 单操作数寻址 LD *AR1, A 单操作数寻址 地址存放情况及地址调整功能共16种: 单操作数寻址 单操作数寻址 单操作数寻址: 单操作数寻址结构图如下所示. 第3章 汇编语言指令系统 3.2.5 间接寻址 ②双操作数寻址 双操作数寻址结构图如下所示: 第3章 汇编语言指令系统 3.2.5 间接寻址 存储器映像寄存器寻址是一种直接访问存储器映像寄存器MMR的方式,可以用来修改MMR的值。 有8条指令可以使用存储器映像寄存器寻址: 堆栈寻址用于进行数据或者MMR的入栈和出栈操作。 下列4条指令使用堆栈寻址: C54x的汇编语言指令集共有129条基本指令, 按完成的功能可以分为6类: 本节只介绍非并行的数据存取指令,包括 : 以累加器A或B为目标操作数的LD指令 以暂存器T或ST0、ST1的DP、ASM及ARP字段为目标操作数的LD指令 32位长操作数的加载指令 例3.11 LD *AR3, A 1)当SXM=0时,进行无符号数的加载 例3.12 LD A, 4, B 1)当OVM=0时,对溢出不进行处理,仅通过OVB=1反映溢出 例3.12 LD A, 4, B 2)当OVM=1时,对溢出进行处理 例3.13 LD @0,ASM 1: ST T, Smem 2: ST TRN, Smem 3: ST #lk, Smem; #有时可省略 为MMR赋值的指令 例 3.14 STLM A, *AR2 STM #lk, MMR; #有时可省略 例 3.15 STM #1357H, *AR4+ STH和STL指令 例 3.17 设累加器(A)=FF 9876 5432H STL A,8,da 第3章 汇编语言指令系统 3. 32位长操作数的加载、存储指令及数据存放格式 例3-18 存放格式对数据存储的影响 DST B, *AR3+ 1)偶地址存放 2)奇地址存放 例3-19 存放格式对数据存储的影响 DLD *AR3+, B 1)偶地址存放 2)奇地址存放 C54x的算术运算指令包括: 例3-20 设被除数1000在数据空间0060h单元中,除数5在0061h中。用条件减法指令SUBC完成16位/16位无符号数除法1000÷5,并将结果存放在0062h单元。 实现的程序段如下: 条件减法完成除法原理: 如果(src-Smem15)0则表示src大于Smem的215倍,则商为1,故src上+1,而(src-Smem15)1是为下一次
文档评论(0)