3.汇编与指令.ppt

  1. 1、本文档共167页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.汇编与指令

Freescale(Motorola) 16位DSP原理及开发技术 3.汇编语言及指令系统 由于多总线结构,DSP可实现指令的并行处理: (1)单并行处理 例: ADD X0 ,A Y0,X(R1)+N (2)双重并行处理 例: MACR X0,Y0,A X:(R0)+N,Y X:(R3)-,X0 ; 双重并行处理一例 特殊寻址模式 固有的 RTS 寄存器直接寻址 MOVE A1,N 立即数寻址 ADD #$2000,X1 短立即数寻址 MOVE #$001C,B1 绝对地址寻址 SUB X:$0800,A 短绝对地址寻址 MOVE X:$001C,R2 I/O 短寻址 MOVE X:$FFEC,R2 立即数寻址 立即数寻址是指汇编指令中的操作数是一个数,用#表示后 面是一个数值,一个立即数 立即数寻址(续) 地址寄存器直接寻址 地址寄存器直接寻址是指操作数是寄存器 例:MOVE X1,A ;将X1寄存器的值传送给 A寄存器 (1)寄存器间接寻址 例: MOVE A1,X:(R0) (2)带事后加1的寄存器间接寻址 例: MOVE B0,X:(R1)+ (3)带事后减1的寄存器间接寻址 例: MOVE B,X:(R1)- (4)带事后加N/减N的寄存器间接寻址 例: MOVE Y1,X:(R2)+N 执行前 执行后 (5)带有偏移量的寄存器间接寻址 例: MOVE X: (R0+offset), x1 读R0+offset指向的存储器到寄存器X1中 Offset是小于63的数,指令占1字;大于63的数, 指令占2字;Offset也可以是偏移量寄存器N (6)带有偏移量的寄存器间接寻址(续) 例: MOVE A1,X:(R2+N) (7)带短置换的寄存器间接寻址 例: MOVE A1,X:(R2+3) (8)带长置换的寄存器间接寻址 例: MOVE A1,X:(R0+$10CF) 流水线效应 当一个 AGU 寄存器正被一条指令占用,与此同时,接下来的另一条指令又把 它作为地址或者在一条 LEA 指令中,这时就会出现流水线效应 附属 AGU 流水线效应案例 情形 1. 由于向N寄存器写入数据而引起的附带效应 MOVE #$7,N ; 向 N 寄存器写入数据 MOVE X:(R2)+N,X0 ; N寄存器在地址算法计算中 ;被使用 N 寄存器在第二条指令中被使用; 通过插入一条额外指令的方法,DSP 内核 自动停止流水线工作. 因此, 这种次序是允许的; 这种附带效应也存在于 (Rn+N) 寻址模式。 附属 AGU 流水线效应案例 (续) 情形 3. 由于向 (R0-R3, SP)写入而引起 MOVE #$7,R2 ; 向 R2 寄存器 MOVE X:(R2)+,X0 ; R2 在地址计算中被使用 地址指针寄存器在第一条指令中被使用,同时在第二条指令中被应用于地址算法中; 这种次序是不允许的, 同时这也被汇编程序所禁止; 可通过在两条指令之间加入NOP指令或重排指令顺序的方法加以修正; 附属 AGU 流水线效应案例 (续) 情形 4. 由于向地址域寄存器 (M01)写入而引起 MOVE #$7,M01 ;向地址域寄存器 (M01)写入 MOVE X:(R0)+,X0 ; M01 寄存器在地址计算中 ;被使用 M01 寄存器在第一条指令中被使用,同时在第二条指令中被应用于地址算法中; 这种次序是不允许的, 同时这也被汇编程序所禁止; 可通过在两条指令之间加入NOP指令或重排指令顺序的方法加以修正; 无附属AGU流水线效应案例 情形 1. 无附属效应 MOVE #$7,N ;向N寄存器写入 MOVE X:(R2)+,X0

文档评论(0)

yan698698 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档