网站公告列表

  没有公告

加入收藏
设为首页
联系本站
您现在的位置: AnalogCN安诺电子 >> 文章 >> 技术交流 >> 文章正文
  《ADI Blackfin系列DSP处理器试验指导》 学习笔记-- ALU逻辑算术指令编程           ★★★ 【字体:
《ADI Blackfin系列DSP处理器试验指导》 学习笔记-- ALU逻辑算术指令编程
作者:佚名    文章来源:Internet    点击数:    更新时间:2008-9-5    

一。试验目的:

a。 掌握ALU的结构原理和数据流;

b。 掌握ALU的算术逻辑指令用法;

c。 理解饱和和舍入的含义;

二。 试验代码:


.section program ;

.global _main ;

_main :


// 16bit operation ;

// 16bit ALU, Addition ;
 r0.h = 0xa5a5 ;
 r7.l = 0x5a5a ;
 r6.h = r0.h + r7.l (ns) ;
 
// 16bit ALU with AC ;
 R0.L = 0x6000 ;
 R5.H = 0X3000 ;
 R7.L = R5.H + R0.L ( NS) ;  // 不饱和操作;
 R7.H = R5.H + R0.L ( S ) ;  // 饱和操作,比较结果;
           //  两个负数相加后的结果;
 R0.L = 0XE5A4 ;
 R4.H = 0X8A5A ;
 R5.L = R0.L + R4.H (S) ;
 R5.H = R0.L + R4.H (NS) ;   // 对比结果看异同;
        // 两个负数相加后不溢出的情况;
 R6.H = R0.H + R0.L (S) ;
 R6.L = R0.H + R0.L (NS) ;   // 对比结果看异同;
 
// 32bit opertation ;

 R0.H = 0X5555;
 R0.L = 0X5555;
 R2.H = 0XAAAA;
 R2.L = 0XAAAA;
 R4 = R0 + R2 (NS) ;   // 32bit 带饱和操作;
 
 R2.H = 0X5555;
 R2.L = 0X5555 ;
 R5 = R0 + R2 (S) ;
 
// 16bit 实例;

// 16bit ALU operation ;

 R0.H = 0XFFFE ;
 R0.L = 0XFF00 ;
 R2.H = 0X1;
 R2.L = 0X1;
 R6 = R0 +|+ R2 ;  // 没有进位产生,对位相加,对应存储;
 
 R0.H = 0X7FFF ;
 R6 = R0 +|+ R2 ; // 有进位产生,不带饱和操作;
 
 R6 = R0 +|+ R0 ( S) ;  // 带饱和操作 ;
 R7 = R0 -|+ R2 ;
 
//  16bit 双ALU操作 ;

 R0.H = 0XFFFF;
 R0.L = 0XFF00;
 R2.H = 0X1;
 R2.L = 0X1 ;
 R6 = R0 +|- R2 , R7 = R0 -|+ R2 ;
 R6 = R0 +|+ R2 ,R7 = R0 -|- R2 ;
 
// 32bit 双ALU 操作;

 R0.H = 0X7FFF;
 R0.L = 0XFFFF;
 R2.H = 0;
 R2.L = 1;
 R6 = R0 + R2 , R5 = R0 - R2 ;
 R0.H = 0X7FFF ;
 R4.H = 0X8000 ;
 R4.L = 0 ;
 R6 = R4 + R2, R5 = R4 - R2 ( S ) ;

// 带有选项(co)的操作 ;

 R0.H = 0XFFFF ;
 R0.L = 0XFF00 ;
 R2.H = 1 ;
 R2.L = 1 ;
 R6 = R0 +|- R2,R7 = R0 -|+ R2 (CO) ;
 // 计算的结果进行交叉再存储;
 R6 = R0+|-R2 ,R7 = R0-|+R2(S);
 
// 预增比例的加法 ;
 R6.H = R0 + R7 ( RND12 ) ;
 l,
// 预减比例的加法 ;
 R6.H = R0 + R7 (RND20 ) ;  
 
// 绝对值指令 ;
 R1 = ABS R6 ;
 
//最大最小指令;
 R4 = MAX ( R6, R7 ) ;
 R3 = MIN ( R6, R7 ) ;
 
// 逻辑指令;
 R4 = R4 & R3 ;
 R4 = R4 | R3 ;
 R4 = ~ R4 ;
 R4 = R4 ^ R3 ;
 
// 位方式异或指令 ;
 A0 = R6 ;
 A1 = R2 ;
 R4.L = CC = BXORSHIFT ( A0 , R1 ) ;
 R7.L = CC = BXOR ( A0, R1 ) ;
 A0 = BXORSHIFT (A0, A1, CC ) ;
 R5.L = CC = BXOR (A0, A1, CC ) ;
 
// 指数检测指令;
 R1.H = 0X0010 ;
 R1.L = 0X0800 ;
 R7.L = 7 ;
 R2.L = EXPADJ ( R1, R7.L ) ;
 R2.L = EXPADJ ( R1, R7.L ) (V) ; // 带有选项的指令;
 
//符号位指令;
 R0.L = SIGNBITS R3 ;  // 求R3 符号位数;
 R3.L = 0XE711 ;
 R0.L = SIGNBITS R3.L ;
 
// 简单除法指令;

// 计算两个带符号的整数的商 ;
 P0 = 15 ;  // 计算商到16bit ;
 R0 = -130 ; 
 R1 = 5 ;
 R0 <<= 1 ;
 DIVS ( R0 , R1 ) ;
 LOOP .DIV_PRIM LC0 = P0 ;
 LOOP_BEGIN .DIV_PRIM ;
 DIVQ (R0, R1 ) ;
 LOOP_END .DIV_PRIM ;
 R0 = R0.L (X) ;
 
 NOP ;
 

_main.end :

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    前置放大器在移动医疗服务系
    便携式多通道大容量生理信号
    防腐监测仪的设计与应用
    基于AD1674的酶标仪的设计
    基于C/S模式的JRTPLIB库的测
    ffmpeg与jrtplib相结合应用
    blackfin模拟摄像头驱动中的
    可编程逻辑在数字信号处理系
    发现VDSP4.5一个BUG:单步调
    VDSP5.0双核工程下sml3中的变
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    版权所有:AnalogCN安诺电子 湘ICP备06016315号