版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1第第3章章 TMS320C55x 的的指令系统指令系统(第第8讲讲)3.2 指令系统指令系统3.2.5 移动指令移动指令3.2.3 扩展辅助寄存器操作指令扩展辅助寄存器操作指令3.2.4 逻辑运算指令逻辑运算指令3.2.1 算术运算指令算术运算指令3.2.2 位操作指令位操作指令3.2.6 程序控制指令程序控制指令23.2.2 位操作指令位操作指令1. 位域比较指令位域比较指令2. 位域扩展和抽取指令位域扩展和抽取指令3. 存储器位操作指令存储器位操作指令4. 寄存器位操作指令寄存器位操作指令5. 状态位设置指令状态位设置指令31. 位域比较指令位域比较指令 格式格式 BAND Smem,k
2、16,TCx ;If (Smem)AND k16)=0),TCx=0;else TCx=1 状态位状态位 不影响指令执行不影响指令执行 执行指令后会受状态位影响执行指令后会受状态位影响 TCxBit Field Comparison (BAND)4例例(1) BAND *AR0, #0060h, TC1(2) BAND *AR3, #00A0h, TC252. 位域抽取和扩展指令位域抽取和扩展指令 (1) 位域抽取位域抽取 BFXTR k16,ACx,dst 例:例:BFXTR #8024h, AC0, T2Bit Field Extract (BFXTR)6 The 16-bit field
3、 mask, k16, is scanned from the least significant bits (LSBs) to the most significant bits (MSBs). According to the bit set to 1 in the bit field mask, the corresponding 16 LSBs of the source accumulator (ACx) bits are extracted and packed toward the LSBs. The result is stored in dst.7 (2) 位域扩展位域扩展
4、BFXPA k16,ACx,dstBit Field Expand (BFXPA)8 The 16-bit field mask, k16, is scanned from the least significant bits (LSBs) to the most significant bits (MSBs). According to the bit set to 1 in the bit field mask, the 16 LSBs of the source accumulator (ACx) bits are extracted and separated with 0 towar
5、d the MSBs. The result is stored in dst.93. 存储器位操作指令存储器位操作指令 指令指令 包括包括 测试、清零、置位和取反测试、清零、置位和取反 指令及操作如表指令及操作如表3-34所示所示 状态位状态位 不影响指令执行不影响指令执行 执行指令后会受状态位影响执行指令后会受状态位影响 TCx10表表3-34 存储器位操作指令存储器位操作指令助记符指令助记符指令 说说 明明 BIST src, Smem, TCx 以以 src 的的 4 个个 LSB 为位地址,测试为位地址,测试 Smem 的对应位的对应位 BNOT src, Smem 以以 src 的
6、的 4 个个 LSB 为位地址,取反为位地址,取反 Smem 的对应位的对应位 BCLR src, Smem 以以 src 的的 4 个个 LSB 为位地址,清零为位地址,清零 Smem 的对应位的对应位 BSET src,Smem 以以 src 的的 4 个个 LSB 为位地址,置位为位地址,置位 Smem 的对应位的对应位 BTSTSET k4,Smem,TCx 以以 k4 为位地址,测试并置位为位地址,测试并置位 Smem 的对应位的对应位 BTSTCLR k4,Smem,TCx 以以 k4 为位地址,测试并清零为位地址,测试并清零 Smem 的对应位的对应位 BTSTNOT k4,Sm
7、em,TCx 以以 k4 为位地址,测试并取反为位地址,测试并取反 Smem 的对应位的对应位 BTST k4,Smem,TCx 以以 k4 为位地址,测试为位地址,测试 Smem 的对应位的对应位 11 (1) BTST AC0, *AR0, TC1 (2) BTST AC0, *AR0, TC2The instruction tests a single bit, as defined by the content of the source (src) operand, of a memory (Smem) location. The tested bit is copied into
8、the selected TCx status bit.12 (1) BTSTNOT #12, *AR0, TC1 (2) BTSTNOT #12, *AR3, TC2The instruction tests a single bit, as defined by a 4-bit immediate value, k4, of a memory (Smem) location and the tested bit is copied into status bit TCx and is complemented in Smem.134. 寄存器位操作指令寄存器位操作指令 指令指令 包括包括
9、测试、清零、置位和取反测试、清零、置位和取反 指令及操作如表指令及操作如表3-36所示所示 状态位状态位 不影响指令执行不影响指令执行 执行指令后会受状态位影响执行指令后会受状态位影响 TCx14助记符指令助记符指令说说 明明BTST Baddr, src, TCx以以Baddr为位地址,测试为位地址,测试src的对应位,并复制到的对应位,并复制到TCx中中BNOT Baddr, src以以Baddr为位地址,取反为位地址,取反src的对应位的对应位BCLR Baddr, src以以Baddr为位地址,清零为位地址,清零src的对应位的对应位BSET Baddr, src以以Baddr为位地址
10、,置位为位地址,置位src的对应位的对应位BTSTP Baddr, src以以Baddr和和Baddr+1为位地址,测试为位地址,测试src的两个位,的两个位,分别复制到分别复制到TC1和和TC2中。中。表表3-35 寄存器位操作指令寄存器位操作指令155. 状态位设置指令状态位设置指令 指令指令 包括:包括: 置位和清零置位和清零 指令及操作如表指令及操作如表3-37所示所示 状态位状态位 不影响指令执行不影响指令执行 执行指令后会受状态位影响执行指令后会受状态位影响 已经选择的状态位已经选择的状态位16表表3-36 状态位设置指令状态位设置指令17 例例 (1) BCLR #1,ST2_5
11、5 (2) BSET #11,ST0_55183.2.6 程序控制指令程序控制指令1. 跳转指令跳转指令2. 调用与返回指令调用与返回指令3. 中断与返回指令中断与返回指令4. 重复指令重复指令5. 其他程序控制指令其他程序控制指令191. 跳转指令跳转指令 指令指令 包括包括 条件跳转、无条件跳转条件跳转、无条件跳转 指令及操作如表指令及操作如表3-44所示所示 状态位状态位 影响指令执行的状态位影响指令执行的状态位 ACOVx,CARRY,C54CM,M40,TCx 执行指令后会影响的状态位执行指令后会影响的状态位 ACOVx20表表3-44 跳转指令跳转指令助记符指令助记符指令 说说 明
12、明 B ACx 跳转由累加器跳转由累加器 ACx(230)指定的地址,即指定的地址,即 PC=ACx(230) B L7 跳转到标号跳转到标号 L7,L7 为为 7 位长的相对位长的相对 PC 的的带符号带符号偏移偏移 B L16 跳转到标号跳转到标号 L16,L16 为为 16 位长的相对位长的相对 PC 的的带符号带符号偏移偏移 B P24 跳转到由标号跳转到由标号 P24 指定的地址,指定的地址,P24 为绝对程序地址为绝对程序地址 BCC L4, cond 条件为真时,跳转到标号条件为真时,跳转到标号 L4 处,处,L4 为为 4 位长的相对位长的相对 PC 的的无符号无符号偏移偏移
13、BCC L8,cond 条件为真时,跳转到标号条件为真时,跳转到标号 L8 处,处,L8 为为 8 位长的相对位长的相对 PC 的的带符号带符号偏移偏移 BCC L16,cond 条件为真时,跳转到标号条件为真时,跳转到标号 L16 处,处,L16 为为 16 位长的相对位长的相对 PC 的的带符号带符号偏移偏移 BCC P24,cond 条件为真时,跳转到标号条件为真时,跳转到标号 P24 处,处,P24 为为 24 位长的绝对程序地址位长的绝对程序地址 BCC L16,ARn_mod!=#0 当指定的辅助寄存器不等于当指定的辅助寄存器不等于 0 时,跳转到标号时,跳转到标号 L16 处,处
14、,L16 为为 16 位长的相位长的相对对 PC 的的带符号带符号偏移偏移 BCCU L8, src RELOP K8 当当 src 与与 K8 的关系满足指定的关系时,跳转到标号的关系满足指定的关系时,跳转到标号 L8 处,处,L8 为为 8 位长的位长的相对相对 PC 的的带符号带符号偏移偏移 21 例例1BCC branch, *AR0 != #0; The content of AR0 is not equal to 0, control is passed to ; the program address label defined by branch.22 例例2BCC branc
15、h, TC1; TC1 is set to 1, control is passed to the program address ; label defined by branch.23 例例3B AC0; Program control is passed to the program; address defined by the content of AC0(230).242. 调用与返回指令调用与返回指令 指令指令 包括包括 有条件、无条件有条件、无条件 指令及操作如表指令及操作如表3-45所示所示 状态位状态位 影响指令执行的状态位影响指令执行的状态位 ACOVx,CARRY,C5
16、4CM,M40,TCx 执行指令后会受影响的状态执行指令后会受影响的状态 ACOVx25表表3-45 调用与返回指令调用与返回指令26 例例1CALLCC(subroutine),AC1=#2000h; AC1=#2000h,PC=子程序地址子程序地址The content of AC1 is equal to or greater than 2000h, control is passed to the program address label, subroutine. The program counter (PC) is loaded with the subroutine progr
17、am address.27 例例2RETCC ACOV0=#0 ;ACOV0=0,PC=调用子程序的返回地址调用子程序的返回地址The AC0 overflow bit is equal to 0, the program counter (PC) is loaded with the return address of the calling subroutine.283. 中断与返回指令中断与返回指令 指令指令 INTR k5 程序执行中断服务子程序程序执行中断服务子程序 中断向量地址由中断向量指针(中断向量地址由中断向量指针(IVPD)和)和5bit无符无符号数确定号数确定 置位置位IN
18、TM TRAP k5 除除不置位不置位INTM外,其它同外,其它同 INTR k5 RETI 从中断服务子程序返回从中断服务子程序返回 状态位状态位 状态位不影响指令执行;执行指令后会影响状态位不影响指令执行;执行指令后会影响 INTM294. 重复指令重复指令 指令指令 包括包括 单指令重复、块重复单指令重复、块重复 指令及操作如表指令及操作如表3-46所示所示 状态位状态位 影响指令执行的状态位影响指令执行的状态位 ACOVX,CARRY,C54CM,M40,TCx 执行指令后会受影响的状态位执行指令后会受影响的状态位 ACOVx30表表3-46 重复指令重复指令31 例例RPT CSR
19、;下一条指令执行下一条指令执行CSR+1次次MACM *AR3+,*AR4+,AC1符号扩展至符号扩展至17bit17bit后再进行乘法运算后再进行乘法运算326. 其他程序控制指令其他程序控制指令 条件执行条件执行 XCC lable,cond ;条件满足,则执行下面一条指令条件满足,则执行下面一条指令 XCCPART lable,cond;条件满足,则执行下面两条并行指令条件满足,则执行下面两条并行指令 空闲空闲 IDLE 空操作空操作 NOP 软件复位软件复位 RESET33 例例XCC branch, *AR0 != #0ADD *AR2+, AC0344.7 一个完整的汇编程序一个完
20、整的汇编程序计算计算 y=x0+x3+x1+x2(1)汇编源程序)汇编源程序(test.asm) * Step 1: 定义有关代码段和数据段定义有关代码段和数据段.def x,y,initx .usect vars,4 ; 为变量为变量x保留保留4个未初始化个未初始化16位存储单元位存储单元y .usect “vars”,1 ; 为变量为变量y保留保留1个未初始化个未初始化16位存储单元位存储单元.sect table ; 创建初始化段创建初始化段table,存储,存储x的初始化值的初始化值init .int 1,2,3,435.text ; 创建代码段创建代码段(.text).global
21、start ; 定义代码段的起始标号定义代码段的起始标号start* Step 2: 处理器模式初始化处理器模式初始化BCLR C54CM ; 设置处理器为设置处理器为55x模式模式BCLR AR0LC ;设置设置AR0为线性模式为线性模式BCLR AR6LC ;设置设置AR6为线性模式为线性模式36* Step 3a: 采用间接寻址方法复制采用间接寻址方法复制x的初始化值到的初始化值到xcopyAMOV #x,XAR0 ; XAR0 指向变量指向变量xAMOV #init,AR6 ; XAR6指向初始化表指向初始化表tableMOV *AR6+,*AR0+ ; 复制开始复制开始MOV *AR
22、6+,*AR0+MOV *AR6+,*AR0+MOV *AR6+,*AR0+37* Step 3b: 采用直接寻址方法将采用直接寻址方法将x的值相加的值相加addAMOV #x,XDP ; XDP 指向变量指向变量x.dp x MOV x,AC0ADD x+3,AC0ADD x+1,AC0ADD x+2,AC0* Step 3c: 用绝对寻址方法把运算结果写到变量用绝对寻址方法把运算结果写到变量y中中MOV AC0,*(#y)endnopB end计算计算 y=x0+x3+x1+x238(2)链接器命令文件)链接器命令文件 (test.cmd)test.obj /* 输入文件输入文件 */o
23、test.out /* 输出文件输出文件 */m test.map /* map文件文件*/MEMORYDARAM: org= 000100h, len = 8000hSARAM: org= 010000h, len = 8000hSECTIONSvars : DARAMtable: SARAM.text: SARAM39例例1. 条件分支条件分支 (B or BC)unsigned int x;/ Allocate a variable x.if ( x = 5) / Test if the value of x is 5. x+; / If so, increment variable x
24、.假设假设 x 存放在存放在 310h 处处方法方法1:AMOV #x, XDP ; XDP pointing to variable x.dp xMOV x, AC0 ; AC0 = xSUB #5, AC0 ; AC0 = AC0 - 5BCC incr, AC0 = #0 ; jump to incr If A = 0B done ; jump to done unconditionallyincr: ADD #1, x ; Increment variable x.done: ; Processing complete.40方法方法2:AMOV #x, XDP ; XDP pointi
25、ng to variable x.dp xMOV x, AC0 ; AC0 = xSUB #5, AC0 ; AC0 = AC0 - 5BCC done, AC0 != 0 ; jump to done If AC0 != 0incr: ADD #1, x ; Increment variable x.done: ; Processing complete.41例例2. 循环循环 Loopunsigned int i, j;i = 0;while ( i = #0 ; jump to done1 if AC0 = 0ADD #21, AC0 ; Restore accumulator A and; Increment v
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年行政流程规范合同3篇
- 智能语音助手技术授权使用协议
- 2024年纺织行业购销合同
- 2024年版企业法人高级管理人员聘用合同范本一
- 2024年金融借款与还款合同
- 2024年版个人房产销售协议标准格式一
- 2024年航天器零部件制造与装配合同
- 五年级数学(小数除法)计算题专项练习及答案汇编
- 二年级数学计算题专项练习1000题汇编集锦
- 2024年车牌租赁协议书模板
- 《铁路技术管理规程》普速铁路部分
- 阻隔防爆撬装式加油气装置技术要求
- 银行资产保全员工年度工作总结
- 钢结构网架验收施工质量自评报告-副本
- 《修心三不 不生气 不计较 不抱怨》读书笔记思维导图
- 妊娠剧吐的护理查房
- GB/T 5023.5-2008额定电压450/750 V及以下聚氯乙烯绝缘电缆第5部分:软电缆(软线)
- GB/T 36127-2018玉雕制品工艺质量评价
- GB/T 23445-2009聚合物水泥防水涂料
- (完整版)100道凑十法练习题
- 2023年上海师范大学辅导员招聘考试笔试题库及答案解析
评论
0/150
提交评论