DSP ccs2 C5000编译SUBC指令实现除法
通过编程求解y=(ax^2-bx+c)/(dx+e),将商和余数分别放在数
据存储器1000H和1001H单元。
(1)已知a=8,b=6,c=10,d=7,e=9,x=5,求y。
(2)已知a=0.9,b=0.1,c=0.5,d=0.4,e=0.2,x=0.8,求y。
.title "division.asm".mmregs
Y .usect "Y",10H ;若程序中要使用堆栈,必须先进行设置X .usect "X",1 .data ; 使用伪指令.sect,.text或.data改变段
table: .word 8,6,10,7,9;分别将a,b,c,d,e放入堆栈
tal: .word 5;独立开辟空间放X的值.def start
start: STM #Y,AR2 RPT #4MVPD table,*AR2+ ;先开辟一个较大的堆栈区,用已知数充填STM #X,AR3 MVPD tal,*AR3 ; 从程序存储器到数据存储器LD #0,ALD #0,B;累加器清0STM #Y,AR3;将数据段的首地址给ARxSTM #X,AR2SQURA *AR2,A ;A=(*AR2)^2STL A,*AR4 ;将累加器的低字节赋值给AR4指向的空间MAC *AR4,*AR3+,B ;B=aX^2计算后AR3指向下一个地址STL B,*(0201H)LD #0,A ;累加器初始化MAC *AR2,*AR3+,A ;A = A+bXSTL A,*AR4 SUB *AR4,B ;B=B-*AR4 => B=aX^2-bXADD *AR3+,B ;B=aX^2-bX+cSTL B,*(0201H)LD #0,AMAC *AR2,*AR3+,A ADD *AR3,A;A=dX+eSTM #0203h,AR4STM #0204h,AR5STL A,*AR4STL B,*AR5 ;验证答案RPT #15SUBC *AR4,B ;除法STL B,*(1000H) ;商STH B,*(1001H) ;余
end: B end.end.title "vectors.asm".ref start.sect ".vectors"B start.enddivision.obj
vectors.obj
-o division.out
-m division.map
-estart
MEMORY
{
PAGE 0:EPROM: org=0e000h len = 0100hVECT: org=0ff80h len = 0004h
PAGE 1:SPRAM: org=0060h len = 0020hDARAM1: org=0100h len = 0010hDARAM2: org=0080h len = 0002h
}
SECTIONS
{.text :>EPROM PAGE 0.data :>EPROM PAGE 0X :>DARAM1 PAGE 1Y :>DARAM2 PAGE 1.vectors:>VECT PAGE 0}
;cmd脚本文件,定义空间位置
.title "division.asm".mmregs ;将寄存器符号设置为全局可用.bss a,6.bss b,1.data
table1: .word 8*32768/10,9*32768/10,1*32768/10,5*32768/10,4*32768/10,2*32768/10
table2: .word 8*32768/10.def start ;.def表示某符号在本文件定义,可为其他文件引用.text
start: SSBX FRCTSTM #a,AR2RPT #6MVPD table1,*AR2+STM #b,AR3MVPD table2,*AR3LD #0,ALD #0,BSTM #a,AR2STM #b,AR3MPY *AR3,*AR2+,A ;乘法 等同SQURA *AR3,A 得出值 假如为005F7A**** ;即00 0101 1111 0111 1010*****=2^(-1)+2^(-3)+……
如果不是特别要求可以省略低字节数据STH A,*AR4STH A,*(0200H) ; A=X^2的值存储在0200HMAC *AR4,*AR2+,BSTH B,*(0201H) ;B=aX^2将值存储在0201HLD #0,AMAC *AR3,*AR2+,ASTH A,*AR4 SUB *AR4,16,BADD *AR2+,16,B STH B,*(0202H) ;B=aX^2-bX+c的值存储在0202HLD #0,AMAC *AR3,*AR2+,AADD *AR2,16,A ;A=dX+eSTM #0203H,AR4 STH A,*AR4 ;*AR4=dX+e;A=dX+e的值存储在0203HSTM #0204h,AR5 STH B,*AR5 ;B=aX^2-bX+cLD #0,BLD *AR5,BRPT #15SUBC *AR4,B;XC 1,BLT;NEG ASTL B,*(1000H)STH B,*(1001H)end: B end.end.title "vectors.asm".ref start.sect ".vectors"B start.enddivision.obj
vectors.obj
-o division.out
-m division.map
-estart
MEMORY
{
PAGE 0:EPROM: org=0e000h len = 0100hVECT: org=0ff80h len = 0004h
PAGE 1:SPRAM: org=0060h len = 0020hDARAM1: org=0100h len = 0010hDARAM2: org=0080h len = 0002h
}
SECTIONS
{.text :>EPROM PAGE 0.data :>EPROM PAGE 0.bss :>SPRAM PAGE 1.vectors:>VECT PAGE 0}
DSP ccs2 C5000编译SUBC指令实现除法相关推荐
- 版本为2.5的OpenMP规范中的编译制导指令汇总
OpenMP的所有编译制导指令是以#pragma omp开始 #pragmaomp指令 [子句[,子句]„] 版本为2.5的OpenMP规范中的指令有以下这些: parallel:用在一个结构块之前, ...
- fatal error C1010: 在查找预编译头指令时遇到意外的文件结尾
问题:drawhouse1.cpp(17) : fatal error C1010: 在查找预编译头指令时遇到意外的文件结尾 解决: 方法1.cpp文件添加引用#include "Stdaf ...
- DSP的EALLOW和EDIS指令
DSP的EALLOW和EDIS指令 在看DSP初始化程序的时候,经常会看到 void DisableDog(void) { EALLOW; ...
- C/C++编译预处理指令
众所周知,你的程序编译前要做的事就是扫描源代码,对其做初步的转换,产生新的源代码提供给编译器,这个过程就叫编译预处理.这个处理过程由预处理器来完成,预处理器是在程序真正运行前由编译器调用的预处理程序. ...
- DSP C2000汇编语言,DSPC2000汇编指令
值.XT寄存器的低16位部分是TL寄存器.该寄存器能装载一个16位有符号数,能自动对该数进行符号扩展,然后将其送人32位XT寄存器.XT寄存器的高16位部分是T寄存器.该寄存器主要用来存储16位乘法操 ...
- android 编译make指令
一.编译指令 1.make -jX X表示数字,这个命令将编译Android系统并生成镜像,XX表示可以使用到的CPU核数, 2.make snod 这条命令将重新生成镜像,消耗的时间很少,类似Win ...
- c语言编译预处理指令大全,C语言预处理指令
「今天是学习C语言第 32 天」 当你选择了一种语言,意味着你还选择了一组技术.一个社区.--Joshua Bloch # 预处理 C语言源程序先经过预处理器进行预处理,之后经过编译器编译成二进制可执 ...
- android 几个快速编译images指令
Android比较重要的image: 0.make update-api //修改framework公共api后,更新api 1.make bootimage – boot.img 2.make sy ...
- 【编译制导指令】#pragma pack - 字节数基准对齐
#pragma pack(1) struct {char c;int i; }S; int main() {cout<<sizeof(S)<<endl; } 那么,结果为: $ ...
最新文章
- 从 k8s 上卸载 KubeSphere
- 8.12-14 df 、mkswap、swapon、swapoff、sync
- Java基础(39)Arrays.binarySearch方法
- 隔离型RS232串口电路
- [Leetcode 376]摇摆序列 Wiggle Subsequence
- java 接口 print_Java-接口练习
- MaxCompute - ODPS重装上阵 第五弹 - SELECT TRANSFORM
- Python文档阅读笔记-OpenCV中Match Shapes
- vue调用手机相机相册_移动端vue调用照相机及相册
- 计算机编程结束进程代码,M代码如何停止CNC编程的程序
- Android.mk中call all-subdir-makefiles和call all-makefiles-under,$(LOCAL_PATH)的区别
- SQL群集多实例卸载、安装
- Oracle常见索引扫描方式总结
- 第二章 信息化规划与组织
- android studio透明背景,使用Android Studio时出现黑色的PNG透明背景
- Android-系统服务-ClipboardManager
- 基于51单片机的LED彩灯控制器设计
- HTML5之帆布(canvas)(三)
- 【渝粤题库】广东开放大学 经济法实务 形成性考核
- (wps)表格下拉选择多个选项
热门文章
- 黄淮学院计算机类专业属于几本,黄淮学院是几本院校
- git pull 时显示Filename too long的解决办法
- PCB应用:Protel 99SE 向 AD16 应用转换的过程( 一 )
- 神仙技巧-应急响应的神兵利器
- Featured Domains
- android编辑框最大字数,(转)Android中EditText的输入字数限制
- 计算机网络基础——应用层(上云必看)
- 重来之大学版|卸负篇——破除光环效应,学长学姐、教授老师真的有这么厉害吗?
- 使用thymeleaf对数据库取出的数据进行渲染时所踩的”坑“
- 雅虎都沦落到卖核心资产,为何马云孙正义巴菲特还抢着买