- 1、本文档共25页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七课-ADSP处理器汇编指令和C代码开发
进栈指令 --SP (Push) 语法 [ -- SP ] = src_reg ; 对一个寄存器进行压栈 [ -- SP ] = (src_reg_range) ; 对多个寄存器进行连续压栈 出栈指令 SP++ (Pop) 语法 dest_reg = [ SP ++ ] ; (dest_reg_range) = [ SP ++ ] ; 连接和撤销指令 LINK, UNLINK 语法 LINK uimm18 ; UNLINK ; 执行连接(LINK)指令时,将当前的RETS寄存器和帧指针FP的值压入堆栈,并将帧分配在堆栈的空间中。与此相反,撤销连接(UNLINK)指令时,将恢复压入堆栈中的RETS寄存器和帧指针 FP的值。 移位指令 算术移位 dest_reg = shift_magnitude ; dest_reg = src_reg shift_magnitude (opt_sat) ; dest_reg = src_reg shift_magnitude (S) ; accumulator = accumulator shift_magnitude ; dest_reg = ASHIFT src_reg BY shift_magnitude (opt_sat) ; accumulator = ASHIFT accumulator BY shift_magnitude; 逻辑移位 语法 dest_pntr = src_pntr 1 ; dest_pntr = src_pntr 2dest_pntr = src_pntr 1 ; dest_pntr = src_pntr 2dest_reg = shift_magnitude ; dest_reg = shift_magnitude ; dest_reg = src_reg shift_magnitude ; dest_reg = src_reg shift_magnitude ; dest_reg = LSHIFT src_reg BY shift_magnitude; 加法指令 加法 语法 dest_reg = src_reg_1 + src_reg_2; 预减比例的加法 语法 dest_reg = src_reg_0 + src_reg_1 (RND20); 预增比例的加法 语法 dest_reg = src_reg_0 + src_reg_1 (RND12) 立即数加法 语法 register += constant; 高速缓存控制指令 数据缓存预取指令 PREFETCH 语法 PREFETCH [ Preg ] ; PREFETCH [ Preg ++ ] ; 数据缓存刷新指令 FLUSH 语法 FLUSH [ Preg ] ; FLUSH [ Preg ++ ] ; 数据缓存行刷新和无效指令 FLUSHINV 语法 FLUSHINV [ Preg ] ; FLUSHINV [ Preg ++ ] ; 视频像素操作指令 ALIGN8, ALIGN16, ALIGN24 语法 dest_reg = ALIGN8 ( src_reg_1, src_reg_0 ); dest_reg = ALIGN16 (src_reg_1, src_reg_0 ); dest_reg = ALIGN24 (src_reg_1, src_reg_0 ); 禁止校正异常指令 语法 DISALGNEXCPT; C代码开发介绍 C/C++编译器简介 VisualDSP ++使用ccblkfn编译器,此C/C++编译器有如下功能: 处理C和C++源文件,产生机器级源代码和目标文件。 在目标文件中包含可重定位的代码和调试信息。 在处理器存储区中提供可由链接器替换的可重定位数据和程序存储段。 C/C++编译器处理C和C++语言源文件并生成Blackfin汇编源文件。汇编源文件由BlackfinDSP系列汇编器(easmblkfn.exe)汇编产生。汇编器进一步产生ELF(Executable and Linkable Format)目标文件,由它可以链接(使用链接器)产生一个Blackfin DSP可执行文件或将其包含在一个档案文件库(elfar.exe)中。编译器如何控制处理过程的汇编,链接和存档阶段取决于输入源文件和所用的编译器选项。 C/C++编译语言扩展 内联函数关键字(inline),ccblkfn的inline关键字使声明为inline类型的函数代码内嵌到调用它的地方。inline是C++的标准特点,ccblkfn将它作为C的扩展名。使用该选项节省了调用
文档评论(0)