hjr教程-DSP(五):汇编运算与段的理解
来源:互联网 发布:零售药店收银软件 编辑:程序博客网 时间:2024/05/01 13:55
DSP编程语言是汇编和C
先说下汇编基础,这是几种常见运算
MOVE 传送,ADD 加法,SUB减法,MPYM乘法,MACM乘加(MACM a,b,c =》 c=a*b+c)
移位:移出位丢弃,空位补零,左移n位相当于乘以2的n次方,右移n位相当于除以2的n次方
汇编语言把程序空间分段,存放数据与代码,注意只有变量可能未初始化,代码一定是初始化的
为什么要分段呢,为了管理方便,比如未初始化的变量会统一赋值0
未初始化段:
.bss:存放系统保留的未初始化的全局变量,比如int,long,位数是系统定的
.usect:存放用户自己定义的未初始化的全局变量,比如定义一个abc类型设置成100位长度
初始化段:
.data:存放系统保留的初始化的全局变量
.sect:存放用户自己定义的初始化的全局变量
.text:存放你的程序代码
比如 .bss h,3
就是把名为h位长为3的变量汇编到.bss段
下面看一段代码
.mmregs.def start.textstart: MOV #0X000A,AC0 AMOV #0X018001,XAR2 AMOV #0X018002,XAR3 MOV #0X0005,*AR2 MOV #0X0002,*AR3 MACM *AR2,*AR3,AC0HERE: 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,然后用转换后的值进行运算
0 0
- hjr教程-DSP(五):汇编运算与段的理解
- hjr教程-DSP(三):关键字与伪指令
- hjr教程-汇编(一):地址与数据
- hjr教程-DSP(一):CCS软件
- hjr教程-DSP(二):CMD文件
- hjr教程-汇编(三):关于寻址
- hjr教程-嵌入式(一):Boot Loader的理解与编写
- hjr教程-JSP(五):SpringMVC进阶
- hjr教程-DSP(四):几种滤波器设计
- hjr教程-汇编(二):指令操作地址和数据
- hjr教程-Android(五):下载tomcat服务器文件
- hjr教程-Python(一):环境搭建与入门知识
- hjr教程-PHP(四):xampp与laravel框架
- hjr教程-C++(一):面向对象类的写法
- hjr教程-JSP(一):一个jsp页面的建立
- 定点与浮点运算 DSP 的比较
- hjr理解-H5-APP的搭建
- hjr教程-C(一):函数调用与参数传递与返回值
- Xcode清除缓存、清理多余证书
- Block (二) 块方法的应用症状枚举
- hdu 1269 迷宫城堡【强连通+Kosaraju】
- 利用.dSYM和.app文件准确定位Crash位置
- OnePlus One Root
- hjr教程-DSP(五):汇编运算与段的理解
- 高级Android工程师面试回忆录
- 【JavaScript】——兼容浏览器的居中显示+关闭页面
- Git的使用
- 使用axis1+spring+hibernate搭建webservice框架(二)
- OpenCV中Mat类的重载运算符operator()的用法!
- quick使用之通过filter来给精灵描边
- 一图看懂学位服:学位帽、学位袍、流苏、垂布
- 第十三周项目2-动物这样叫