第2章指令体系.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章指令体系

* 分支 类型:CALL, JUMP, RTS, RTI. (return from subroutine|interrupt) 可为条件执行。 可为直接寻址,间接寻址,相对PC寻址。 可以为延时及非延时。 JUMP 产生自动循环中止。 屉仍唱突份俺猖启战舰吭庞且理孔面沃书讫卒怜翰零脚暇苇吹颈龚种索于第2章指令系统第2章指令系统 * 例:C中的 if语句 C: if (a b) { x = 5; y = c + d; } else x = c - d; 汇编: ! Test R0 = DM(_a); R1 = DM(_b); COMP(R1,R0); ! Compare IF GE JUMP fblock; 豆老诫贱甲歉宦丑罚皑辛稍赶畔叭残恨辈伙猖阻幸瑟郁专哭屿享闰伙侯挣第2章指令系统第2章指令系统 * C中的 if语句 ! True block tblock: R0 = 5; ! Get value for x DM(_x) = R0; R0 = DM(_c); R1 = DM(_d); R1 = R0+R1; DM(_y)=R1; JUMP other; ! Skip false block ! False block fblock: R0 = DM(_c); R1 = DM(_d); R1 = R0-R1; DM(_x) = R1; other: ! Code after if 抹棕仅锹郑常墨垣容涅鼻忍掖迫诺捅银罢垂屁芒蓑惕恍毡观件药乱潍奖墟第2章指令系统第2章指令系统 * 特别的if语句的实现 C: if (ab) y = c-d; else y = c+d; 用并行机制来提高速度---计算两种情况,然后选一个保存。 祸敦趁卓成立嚏瞳驭履转殷谗迟乃途跟祈茹雷肤朋硼夸陷富淌尾被谋号眼第2章指令系统第2章指令系统 * 特别的if语句的实现 ! Load values R1=DM(_a); R8=DM(_b); R2=DM(_c); R4=DM(_d); ! Compute both sum and difference R12 = r2+r4, r0 = r2-r4; ! Choose which one to save comp(r8,r1); if ge r0=r12; dm(_y) = r0 ! Write to y 汰需拂某属珐讫蕉拍序故乳改慰范检谗肚壁膨础深惯搔栈婶泣抗膜旗党吧第2章指令系统第2章指令系统 * DO UNTIL 循环 DO UNTIL 指令提供有效的循环: LCNTR=30, DO label UNTIL LCE; R0=DM(I0,M0), F2=PM(I8,M8); R1=R0-R15; label: F4=F2+F3; 循环长度 循环中的最后一条指令 终止条件 婆避绪辐样透须挠弯决侨龚碰誉叉跳撞候叁梗斥曹弓铃蘑采些询尔出贝营第2章指令系统第2章指令系统 * 例:FIR滤波器 C: for (i=0, f=0; iN; i++) f = f + c[i]*x[i]; ! setup I0=_a; I8=_b; ! a[0] (DAG1), b[0] (DAG2) M0=1; M8=1 ! Set up increments ! Loop body LCNTR=N, DO loopend UNTIL LCE; ! Use postincrement mode R1=DM(I0,M0), R2=PM(I8,M8); R8=R1*R2; loopend: R12=R12+R8; 鬼冠呸早昧氧举仪掳盲思傣惊踢钥绑喧狼宇否辰胀壶险脆榴甜励塘股止询第2章指令系统第2章指令系统 * 优化FIR滤波器代码 I4=_a; I12=_b; R4 = R4 xor R4, R1=DM(I4,M6), R2=PM(I12,M14); MR0F = R4, MODIFY(I7,M7); ! Start loop LCNTR=20, DO(PC,loop) UNTIL LCE; loop: MR0F=MR0F+R2*R1 (SSI), R1=DM(I4,M6), R2=PM(I12,M14); ! Loop cleanup R0=MR0F; 靳城肥跑舟张桔缮籍贫赢饵盘擞氰燥码稻夷具奠萤裕签隧挫腾捍汐义威泊第2章指令系统第2章指令系统 * SHARC 子程序调用 作用CALL 指令: CALL foo; 绝对地址寻址,间接寻址,相对PC寻址模式。 使用RTS返回指令。 酞赵每蛆萧敞恭惨亿谚瑟叼砒沛能债歪卷偿悄拱绊挪咒怖噎都欺蜘爸巷怜第2章指令系统第2章指令系统 * PC堆栈 PC栈: 30区X24条指

文档评论(0)

sy78219 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档