hjr-DSP:汇编运算与段的理解
DSP编程语言是汇编和C
先说下汇编基础,这是几种常见运算
MOVE 传送,ADD 加法,SUB减法,MPYM乘法,MACM乘加(MACM a,b,c =》 c=a*b+c)
移位:移出位丢弃,空位补零,左移n位相当于乘以2的n次方,右移n位相当于除以2的n次方
对于程序,主要由数据与代码组成,数据又分为初始化的数据和未初始化的数据,比如你int a;这就是未初始化,int a = 1;这就是初始化
汇编语言把程序空间分段,存放数据与代码,注意只有变量可能未初始化,代码一定是初始化的
为什么要分段呢,为了管理方便,比如未初始化的变量会统一赋值0
未初始化段:
.bss:存放系统保留的未初始化的全局变量,比如int,long,位数是系统定的
.usect:存放用户自己定义的未初始化的全局变量,比如定义一个abc类型设置成100位长度
初始化段:
.data:存放系统保留的初始化的全局变量
.sect:存放用户自己定义的初始化的全局变量
.text:存放你的程序代码
比如 .bss h,3
就是把名为h位长为3的变量汇编到.bss段
下面看一段代码
.mmregs.def start.text
start: MOV #0X000A,AC0AMOV #0X018001,XAR2AMOV #0X018002,XAR3MOV #0X0005,*AR2MOV #0X0002,*AR3MACM *AR2,*AR3,AC0
HERE: B HERE;.end
上面的.text就是告诉汇编器把下面的代码汇编到程序空间的代码段
注意寄存器的几个规则
带X的说明是辅助寄存器
MACM是累乘,上面的代码汇编后AC0的值是
A+2*5=20
20用16进制表示,满10进1就是14
然后AC0是40位寄存器,所以0X0000000014,1那个是高位,4是低位,低位满了高位进1,转化成值就是1*16+4=20
如果遇到小数乘法,看是定点DSP还是浮点DSP,定点便宜,不准,速度快,功耗低,浮点相反
定点计算公式,Xq = X*2的Q次幂 Q是定标数
比如Q=8,编写0.3*5的程序
写程序时,0.3需要转换成0.3*2的8次幂即0.3*256,然后用转换后的值进行运算
hjr-DSP:汇编运算与段的理解相关推荐
- 汇编实现时钟设置代码理解
汇编实现时钟设置代码理解 下面的笔记是我在看<朱老师物联网大讲堂>(www.zhulaoshi.org)之后所做的笔记,只是大概根据自己看了视频与朱老师上课做的笔记而有的理解记录下来. 写 ...
- 【STM32F429的DSP教程】第25章 DSP变换运算-快速傅里叶变换原理(FFT)
完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第25章 DSP变换运算-快速傅里叶变换原理(F ...
- 【STM32F407的DSP教程】第24章 DSP变换运算-傅里叶变换
完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第24章 DSP变换运算-傅里叶变换 本章节开始 ...
- 【STM32F407的DSP教程】第25章 DSP变换运算-快速傅里叶变换原理(FFT)
完整版教程下载地址:http://www.armbbs.cn/forum.php?mod=viewthread&tid=94547 第25章 DSP变换运算-快速傅里叶变换原理(F ...
- 目标码格式解析之DSP目标码Cinit段
目标码格式解析之DSP目标码Cinit段 什么是DSP 什么是DSP程序 什么是段信息 Cinit段数据分析 Loader操作 结尾 什么是DSP 一般来说DSP就是数字信号处理器,简单来说就是一块芯 ...
- 通过分析一个C程序的汇编指令执行过程,理解计算机的工作。
郑德伦 原创作品转载请注明出处 <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/USTC-1000029000 首先创建一个C程序的文 ...
- DSP DSP汇编伪指令汇总
段定义伪指令: 把汇编程序的各个部分与适当的段(数据块或程序块)联系起来 段定义伪指令 .asect "段名" , 地址 汇编到一以绝对地址为起始的段中 作用类似于.sect,但多 ...
- ARM汇编——PC和LR寄存器理解
0.前言 既然学C/C++,不了解一下嵌入式有点不合适,了解嵌入式之前看了一点汇编,那些寄存器太特么有意思了.讲真的,硬件确实比软件要复杂一些. 对了,先推荐一首歌,<New Boy>-- ...
- 【 c语言中无符号和有符号的加法运算】【深入理解】--【sky原创】
第一题 #include<stdio.h> int main() { unsigned int a=6; int b=-20; printf("%d\n" ...
最新文章
- 一网打尽数据结构中图相关的算法
- Linu网络判断指令ping、curl、telnet的区别与应用场景
- python零基础入门教材-Python零基础入门到精通自学视频教程
- MySQL添加、删除字段
- 用实例证明dll中new的内存不能在exe中释放
- 【干货笔记】CS224n-2019 学习笔记 Lecture 01 Introduction and Word Vectors
- StuQ Android 会员学习计划|帮你成为更优秀的 Android 工程师
- 充一次电使用一年的手机_手机充一次电用一年?现有技术难实现
- c 语言程序设计(清华大学郑莉),清华大学 C++程序设计语言 45 郑莉 视频教程
- 【PMP】PMBOK 笔记 第3章 项目管理过程
- 如何从手机中提取system.img文件
- Craft CMS简介
- 程序中美元符号$是什么
- 华为服务器修改root密码,华为云服务器root权限设置密码
- 分享新手电商(淘宝、拼多多、楚楚街)上货经验
- 经验转行产品经理|纯经验分享
- CentOS7克隆虚拟机需要修改的配置
- 魔方图形 c语言,魔方小站带图案 带数字魔方的玩法教程 公式图解|3D动画
- Web面试题汇总-自用
- Unity4.x项目升级Unity5.0过程中出现的各种常见问题
热门文章
- plc维修入门与故障实例pdf_实例讲解之西门子伺服电机维修超温报警故障
- 塑造者思考法-自顶向下的思考方法
- 年会直播方案应该怎么做
- 老子云SDK免费使用,实现3D开发自由
- 蓝桥杯试题 算法训练 绘制地图 C/C++解法 AC(最近,WYF正准备参观他的点卡工厂。WYF集团的经理氰垃圾需要帮助WYF设计参“观”路线。现在,氰垃圾知道一下几件事情。。。。)
- 常用视频标准尺寸和码率
- 高清电视HDTV概述
- 2023年10大电子合同签署平台排名参考
- 畅享8 Plus(FLA-AL20 全网通)一键ROOT教程,看教程轻松ROOT
- 《程序员羊皮卷》荣升当当IT图书飙升榜第一名