前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >dsp指令ixh_C24XX系列DSP移位指令总结[通俗易懂]

dsp指令ixh_C24XX系列DSP移位指令总结[通俗易懂]

作者头像
全栈程序员站长
发布于 2022-08-30 10:07:31
发布于 2022-08-30 10:07:31
1K0
举报

大家好,又见面了,我是你们的朋友全栈君。

C24XX系列DSP移位指令总结

徐丽红王佰营

TI公司C24XX系列DSP的移位指令很有特色而且效率很高;一般的移位功能不用专门的指令实现而是作为其他指令中的一个功能给出,并且移位并不占用CPU额外时间。以下整理出了DSP常用的移位指令:

一、两类移位指令

1>显性移位指令,移位次数由指令直接给出:1add—sub←0—16

2and—or—xor←#L

3lacc←0—16

4sach—sacl← 0—7

2>隐性移位指令

A:由TREG[0:3]指定

(1)addt—subt←T

(2)lact—←T

(3)不移位,bitt由TREG[0:3]给定位

B:由PM给定

(1)pac—apac—spac←→PM

(2)lta—ltp—lts—ltd←→PM

(3)mac—macd←→PM

(4)mpya—mpys←→PM

(5)sph—spl←→PM

(6)sqra—sqrs←→PM

无移位的指令:

lph—lt—mpy—mpu—spm

注: ← 表示可左移;

←→ 可左右移;

二、移位指令的总结:

1移位指令分显性移位和隐性移位,

隐性移位按给出移位数的方式不同分为TREG[0:3]和PM之分;

2显性移位指令多由acc参与,也就是由ACC参与的,除三条指令最后是T结尾的指令 (addt,subt,lact)由TREG[0:3]给出移位数外,其余皆为显性移位;

3显性移位分为:

A:≤7位的左移的两条指令:

Scah sacl;

B:其余为0—15,16位移位指令

1>仅对长立即数移位的指令,是三条逻辑指令

And- or – xor

2>直接0-15,16,间接0-15,16,长立即0-15的移位指令:

Add ,sub ,lacc

3> TREG或PREG参与的指令仅用PM指令移位方式;

4>在TREG或PREG参与的指令中,除以下几条指令外,其它指令均含有由PM指定 的移位操作。

Lph – lt- mpy – mpu;

4、由中央处理单元结构(见下图)可知:

由上图可知移位操作有四处:

A 、输入移位器(ISCALE)

1>其数据来源有:

1程序读总线-程序存储器-指令中的立即数;

2数据读总线-数据存储器单元中的数据;

2>可实现

1程序提供的立即数

2数据RAM—直接寻址, 间接寻址

如:adddma [shift]直接寻址

adddma 6

addind,16 [ARn]间接寻址

addind [shift [ ,ARn]

add#lR [ ,shift]立即寻址

3>输入移位器的移位数值的大小由包含在指令中的常量或由临时寄存器(TREG)来指定;其中,由指令字中的常量决定的移位量允许用户采用特定的数据定标或调整运算来得到特定的代码;由TREG低4位数值所决定的移位量,允许用户动态调整数据的比例系数,从而来适应不同要求的系统性能;

4>(0—16)左移时,最低位填0,未用的最高位填0或进行符号扩展,这要由SXM位的值决定:SXM=0,填0;SXM=1,则未使用的最高有效位填0或1,进行符号扩展;

5>两种方法获得左移的位数:指令中直接设置移位位数或TREG的最低4位提供移位位数;

B、乘积移位器(PSCALE)

1>其数据来源PREG

2>可实现

以状态寄存器ST1中的乘积移位模式控制位PM指定方式对PREG来的数据进行移位的方式

PM = 00无移位

PM = 01左移一位

PM = 10左移四位

PM = 11右移六位

如:shifted(PREG)

a> apac功能:(ACC)+ shifted(PREG)→ACC;

b> spac功能:(ACC)- shifted(PREG)→ACC;

c> pac功能:shifted(PREG)→ACC;

e> sph功能:16MSBsofshiftEd(PREG)→数据空间地址;

f> spl功能:16LSBsofshifted(PREG)→数据空间地址;

g>包括有指令apac功能的指令有:

lta ; mac ; macd ; mpya ; sqra ;

i>包括有指令spac功能的指令有:

lts ; mpys ; sqrs ;

j>包含有指令pac功能的指令有

ltp

3>乘积移位器可以供给:

<1>数据写总线

<2>中央算术逻辑部分CALU;再给ACC;

所以有以下几种情况:

shifted(PREG)→ACC;

(ACC)+ shifted(PREG)→ACC

(ACC)- shifted(PREG)→ACC

16MSBsofshiftEd(PREG)→数据空间地址

16LSBsofshifted(PREG)→数据空间地址

4> 一般当PREG参与并且数据传输的目标是ACC或RAM时,数据就会经过PSCALE,就由PM决定是否移位;自然,MPY,MPYU和LPT指令数据传输的目标是PREG,所以就不会有移位了;

5> 乘积移位操作不受符号扩展位SXM的约束,无论SXM为何值,对未用到的最高有效位总是进行符号扩展;

C、输出移位器(OSCALE)

1>其数据来源为ACC

2>可实现

(ACC)x2shift

如:sach , sacl(shift≤7)

16MSBsof(ACC)x2shift→数据存储空间

16LSBsof(ACC)x2shift→数据存储空间

3>输出移位器可以供:

数据写总线—数据RAM空间。

4>输出移位器对累加器的结果进行移位操作,将累加器的高位字(ACCH)和低位字(ACCL)分别移位处理,将结果送至16位的数据写总线上而存入数据存储器;

5> 当输出移位器执行移位时,其最高有效位丢失而最低有效位填0;

D、累加器ACC的移位操作

ACC可实现如下循环或移位,和以上的移位不同,专用于循环或移位,占用指令时间,是该指令专门的工作;

rol —累加器逻辑循环左移—左移一位,C入LSB,MSB入C,不受SXM影响;

ror— 累加器逻辑循环右移—右移一位,C入MSB,LSB入C,不受SXM影响;

sfl — 累加器算术左移—最高位入C,最低位补0,不受SXM影响;

sfr — 累加器算术右移—受SXM位影响:

若SXM=1,为算术右移,符号位(最高有效位)不变且被复制到位30,位0入C;

若SXM=0,为逻辑右移,ACC中所有位右移一位,LSB入C,MSB填0;

注意:有的移位受符号扩展方式位(SXM)的影响,注意正确设置SXM的值,以达到预期目标;

关键字:TMS320LF2407 TMS320C2000 DSP 移位 指令

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/145098.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
Vue 3 事件处理
页面上会有很多的页面交互,例如用户点击按钮,会触发什么样的事件,这个事件要做什么事情,就会涉及到事件处理。
公众号---人生代码
2020/11/03
2.2K0
Vue 3 事件处理
JavaScript事件
JavaScript事件 对于事件来讲,首先,我们需要了解这样几个概念:事件;事件处理程序;事件类型;事件流;事件冒泡;事件捕获;事件对象;事件模拟,事件方面的性能优化(事件委托、移除事件处理程序); 事件的概念 事件:指的是文档或者浏览器窗口中发生的一些特定交互瞬间。我们可以通过监听器(或者处理程序)来预定事件,以便事件发生的时候执行相应的代码。 事件处理程序:我们用户在页面中进行的点击这个动作,鼠标移动的动作,网页页面加载完成的动作等,都可以称之为事件名称,即:click、mousemove、loa
汤高
2018/01/11
2.2K0
JavaScript事件
JavaScript DOM
JavaScript DOM 是指 JavaScript 中的文档对象模型(Document Object Model);它允许 JavaScript 与 HTML 页面交互,使开发者可以通过编程方式动态地修改网页内容和样式,以及响应用户的交互。
久绊A
2023/03/25
6850
JavaScript基础-事件监听与处理
在Web开发中,事件驱动编程是核心机制之一,它使得页面能够响应用户的操作,如点击、滚动、键盘输入等。JavaScript提供了强大的事件监听与处理机制,让开发者能够轻松地为DOM元素绑定事件处理程序。本文将深入浅出地介绍JavaScript事件模型、绑定与解除事件监听器的方法,以及在实际应用中常见的问题与易错点,并通过代码示例给出避免策略。
Jimaks
2024/06/12
3720
JavaScript事件详解
想必大家对JavaScript的事件都不陌生吧,大多数在网站开发的时候都会用到,这也是JavaScript的基本功之一,本文就为各位梳理一下相关知识。
用户8983410
2021/09/19
7780
JavaScript语言基础与进阶指南
JavaScript,作为一种基于对象的、事件驱动型的、解释型的脚本语言,广泛应用于网页开发中,旨在实现网页的交互能力。本文将详细介绍JavaScript的基础用法以及进阶知识,帮助读者更好地理解和运用这门语言。
炒香菇的书呆子
2024/12/05
1920
【前端】详解JavaScript事件代理(事件委托)
事件代理(Event Delegation),又称之为事件委托。是JavaScript中常用绑定事件的常用技巧。
程序员洲洲
2024/06/11
9670
【前端】详解JavaScript事件代理(事件委托)
前端系列第1集-什么是Dom事件流?
DOM 事件流(DOM Event Flow)是指在 HTML 或 XML 文档中,由用户或浏览器执行的事件的传递路径。当一个事件在一个元素上触发时,它会在该元素上被处理,然后逐级向上冒泡直到文档根节点,这就是事件冒泡。在事件冒泡的过程中,每个处理函数都可以阻止事件继续向上冒泡,也可以停止事件默认行为。
达达前端
2023/10/08
2610
【JavaScript】JavaScript开篇基础(5)
方法监听注册方式:addEventListener() 特点:同一个元素同一个事件可以注册多个监听器(监听处理函数function),按注册顺序依次执行
E绵绵
2024/11/13
1360
【JavaScript】JavaScript开篇基础(5)
深入理解JavaScript中的事件委托与事件代理
在JavaScript的开发中,事件处理是构建动态、交互式逻辑的关键。事件委托和事件代理,作为高效的事件处理策略,不仅优化了性能,还提升了代码的可维护性
iwhao
2024/07/05
3230
JavaScript 事件委托 以及jQuery对事件委托的支持
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://louluan.blog.csdn.net/article/details/24009177
亦山
2019/05/25
9560
第9章 JavaScript事件处理
HTML5+CSS3+JavaScript Web 前端开发案例教程(慕课版)【不推荐】,微信读书中找到的学习Web前端书籍,第9章开始啦,耶(^-^)V
用户8928967
2021/09/22
1.1K0
再谈BOM和DOM(4):DOM0/DOM2事件处理分析
JavaScript能够让网站对用户的各种操作及时做出“反馈”,响应用户交互行为,而这些就是:DOM,事件以及事件处理
周陆军
2021/07/13
9410
JavaScript面试问题:事件委托和this
JavaScript不仅门槛低,而且是一门有趣、功能强大和非常重要的语言。各行各业的人发现自己最混乱的选择是JavaSscript编程语言。由于有着各种各样的背景,所以不是每个人都对JavaScript及其基本原理有广泛的认识。通常来书,除非你去参加工作面试才会去思考为什么或者怎么做,否则JavaScript只是你工作的内容。 这个系类的目标是深入探讨JavaScript的一些概念和理论。主题来自于 Darcy Clarke的JavaScript典型面试问题列表。希望你不仅仅是为了答案而阅读完这篇文章,每一
前朝楚水
2018/04/02
1.4K0
JavaScript小技能:事件
JavaScript 在不同环境下使用不同的事件模型:不同的编程环境下的事件机制是不同的,比如JavaScript 网页上的事件机制不同于在其他环境中的事件机制。(Node.js 的事件模型、浏览器插件WebExtensions技术的事件模型)
公众号iOS逆向
2022/08/22
1.6K0
JavaScript小技能:事件
JavaScript(十二)
这一篇,我们讲讲 JavaScript 中非常重要的概念 —— 事件。 JavaScript 与 HTML 之间的交互是通过事件实现的。
1ess
2021/11/01
3.4K0
事件
事件 JavaScript和HTML的交互是通过事件实现的。JavaScript采用异步事件驱动编程模型,当文档、浏览器、元素或与之相关对象发生特定事情时,浏览器会产生事件。如果JavaScript关注特定类型事件,那么它可以注册当这类事件发生时要调用的句柄。事件是某个行为或者触发,比如点击、鼠标移动..... 当用户点击鼠标时 当网页已加载时 当图像已加载时 当鼠标移动到元素上时 当用户触发按键时... 事件流 事件流描述的是从页面中接收事件的顺序,比如有两个嵌套的div,点击了内层的div,这时候是内层
小胖
2018/06/27
1.5K0
【Java 进阶篇】JavaScript 事件详解
在本篇博客中,我们将深入探讨JavaScript事件,这是网页交互的核心。我们将从什么是事件开始,然后逐步介绍事件的类型、如何注册事件、事件处理程序、事件对象以及事件冒泡等相关内容。最终,我们将提供大量的示例代码来帮助您更好地理解JavaScript事件。
繁依Fanyi
2023/10/19
4240
【Web前端】嵌套元素的“事件”冒泡?!
事件处理是创建交互式用户界面的关键部分,浏览器通过事件系统让我们能够捕获和响应用户的输入,比如点击、鼠标移动、键盘输入等。
一条晒干的咸鱼
2024/11/19
2160
【Web前端】嵌套元素的“事件”冒泡?!
【Web APIs】JavaScript 事件基础 ① ( JavaScript 事件简介 | “ 事件 “ 概念 | “ 事件 “ 三要素 - 事件源 / 事件 / 事件处理程序 | 事件类型 )
通过在 HTML 网页中 添加 JavaScript 脚本 , 可以创建 动态页面 ,
韩曙亮
2024/06/24
3610
【Web APIs】JavaScript 事件基础 ① ( JavaScript 事件简介 | “ 事件 “ 概念 | “ 事件 “ 三要素 - 事件源 / 事件 / 事件处理程序 | 事件类型 )
推荐阅读
相关推荐
Vue 3 事件处理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档