程序存储器地址生成方式-Read.ppt

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

**********************************************************TestXF2.asm *对TestXF1.asm稍作改进,用延时子程序设置较长的延时, *可以用试验板上的LED看到XF引脚电平的变化 ********************************************************* .mmregs ;预定义的寄存器 .def CodeStart ;定义程序入口标记 .text ;程序区 CodeStart: ;程序入口 SSBX XF ;XF置1 CALL Delay ;调用延时程序 RSBX XF ;XF清0 CALL Delay ;调用延时程序 B CodeStart ;跳转到程序开头循环执行 ********************************************************* ********************************************************* *延时子程序:Delay *用两级减一计数器来延时。调整AR1和AR2的大小LED闪烁的频率不同 ********************************************************* Delay: STM #999,AR1 ;循环次数1000 LOOP1: STM #4999, AR2 ;循环次数5000 LOOP2: BANZ LOOP2,*AR2- ;如果AR2不等于0,AR2减1,再判断 BANZ LOOP1,*AR1- ;如果AR1不等于0,AR1减1,跳转到LOOP1 RET .end ********************************************************* *注意这种延时方法并不精确,需要精确定时必须用定时器。 *按此法延时的近似公式为:4*(AR2+1)*(AR1+1)*时钟周期 *当DSP工作在50MHz(时钟周期20ns),AR1=999, AR2=4999时 *延时约为400ms,则LED闪烁的周期为800ms,频率1.25Hz ********************************************************* * 程序存储器地址生成方式: ? 程序存储器的内容:存放程序指令代码、参数表和立即数。 ?程序存储器地址生成后加载到程序计数器PC中,在通过PAB 可寻址64K字的空间。 ?程序地址产生器(PAGEN):包含有5个寄存器,如下: PC RC BRC RSA REA 程序地址产生逻辑PAGEN 重复寄存器 程序计数器PC: PC是一个16位寄存器,其中保存着某个内部或外部程序存储器的地址,即指向即将访问的程序存储器的地址。 加载地址到PC的几种途经: ? 复位:PC=FF80h ? 顺序执行:PC=PC+1 ? 跳转 ? 返回 ? 循环操作 ? 调用 ? 条件操作 ? 中断 分支转移(跳转): ? 执行跳转指令打断了程序执行的顺序,跳到程序存储器的某个位置去执行。 ? 当跳转指令到达流水线的执行阶段时,其后面的两个字已被取指。 跳转 无条件跳转 条件跳转 延迟D(跟在跳转指令后的一个2字或2个一字指令可 以被执行后再跳转) 非延迟(将已被读入的跟在跳转指令后 的一个2字 或2个一字指令被清除后再跳转) 延迟D 非延迟 4/2 6/4 跳到程序给出的地址 跳到累加器给出的地址 B[D] BACC[D] 周期数 (非延迟/延迟) 说 明 指令 无条件跳转 条件跳转 周期数 (条件满足/不满足) (非延迟/延迟) 说 明 指令 4/2 2/2 当前辅助寄存器不为零就跳转 BANZ[D] 5/3 3/3 条件满足就跳转 BC[D] 注:不延迟需在跳转前将后两个字消除,故多需2个周期 调用与返回: 当调用子程序时,中断原程序执行的顺序,转到程序存储器 的其它位置,同时把下一条指令的地址压入堆栈。 调用 无条件调用 条件调用 延迟 非延迟 延迟 非延迟 调用与返回指令举例: 例1:CALA A 例2:CALAD B 例3:CALL 3333h 例4:CALLD 1000h 例5:CC 2222h,AGT 例6:RET 例7:RETE 例8:RETF

文档评论(0)

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

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

1亿VIP精品文档

相关文档