程序存储器地址生成方式 程序存储器的内容存放程序指.ppt

程序存储器地址生成方式 程序存储器的内容存放程序指.ppt

ID:52183124

大小:111.00 KB

页数:20页

时间:2020-04-02

程序存储器地址生成方式 程序存储器的内容存放程序指.ppt_第1页
程序存储器地址生成方式 程序存储器的内容存放程序指.ppt_第2页
程序存储器地址生成方式 程序存储器的内容存放程序指.ppt_第3页
程序存储器地址生成方式 程序存储器的内容存放程序指.ppt_第4页
程序存储器地址生成方式 程序存储器的内容存放程序指.ppt_第5页
资源描述:

《程序存储器地址生成方式 程序存储器的内容存放程序指.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库

1、程序存储器地址生成方式:程序存储器的内容:存放程序指令代码、参数表和立即数。程序存储器地址生成后加载到程序计数器PC中,在通过PAB可寻址64K字的空间。程序地址产生器(PAGEN):包含有5个寄存器,如下:PCRCBRCRSAREA程序地址产生逻辑PAGEN重复寄存器程序计数器PC:PC是一个16位寄存器,其中保存着某个内部或外部程序存储器的地址,即指向即将访问的程序存储器的地址。加载地址到PC的几种途经:复位:PC=FF80h顺序执行:PC=PC+1跳转返回循环操作调用条件操作中断分支转移(跳转):执行跳转指令打断了程序执行的顺序,跳到

2、程序存储器的某个位置去执行。当跳转指令到达流水线的执行阶段时,其后面的两个字已被取指。跳转无条件跳转条件跳转延迟D(跟在跳转指令后的一个2字或2个一字指令可以被执行后再跳转)非延迟(将已被读入的跟在跳转指令后的一个2字或2个一字指令被清除后再跳转)延迟D非延迟指令说明周期数(非延迟/延迟)B[D]BACC[D]跳到程序给出的地址跳到累加器给出的地址4/26/4无条件跳转条件跳转指令说明周期数(条件满足/不满足)(非延迟/延迟)BC[D]条件满足就跳转5/33/3BANZ[D]当前辅助寄存器不为零就跳转4/22/2注:不延迟需在跳转前将后两个字消除,故多需2个周期

3、调用与返回:当调用子程序时,中断原程序执行的顺序,转到程序存储器的其它位置,同时把下一条指令的地址压入堆栈。调用无条件调用条件调用延迟非延迟延迟非延迟调用与返回指令举例:例1:CALAA例2:CALADB例3:CALL3333h例4:CALLD1000h例5:CC2222h,AGT例6:RET例7:RETE例8:RETF……**********************************************************TestXF2.asm *对TestXF1.asm稍作改进,用延时子程序设置较长的延时, *可以用试验板上的LED看到XF引脚电

4、平的变化 *********************************************************.mmregs;预定义的寄存器.defCodeStart;定义程序入口标记.text;程序区CodeStart:;程序入口SSBXXF;XF置1 CALLDelay;调用延时程序RSBXXF;XF清0 CALLDelay;调用延时程序BCodeStart;跳转到程序开头循环执行 **********************************************************************************

5、******************************** *延时子程序:Delay *用两级减一计数器来延时。调整AR1和AR2的大小LED闪烁的频率不同 *********************************************************Delay: STM#999,AR1;循环次数1000 LOOP1:STM#4999,AR2;循环次数5000 LOOP2:BANZLOOP2,*AR2-;如果AR2不等于0,AR2减1,再判断BANZLOOP1,*AR1-;如果AR1不等于0,AR1减1,跳转到LOOP1 RET .end

6、 ********************************************************* *注意这种延时方法并不精确,需要精确定时必须用定时器。 *按此法延时的近似公式为:4*(AR2+1)*(AR1+1)*时钟周期 *当DSP工作在50MHz(时钟周期20ns),AR1=999,AR2=4999时 *延时约为400ms,则LED闪烁的周期为800ms,频率1.25Hz *********************************************************对于C548来讲,有一个7位程序扩展计数器XPC,用

7、来选择当前的64K字页程序存储器。可以实现长跳转和长调用指令。FBFBACCFCALLFCALAFRETFRETE条件操作:当一个或多个条件得到满足时才执行。条件见表2.21当多重条件时,只能从第一组或第二组条件组合,见表2.22第一组:可从A类或B类中选择一个条件,但不能从同一类中选择两个;另外,两种条件测试的累加器必须是同一个。第二组:可以从A,B,C类各选择一个,但不能从同一类中选择两个。如果条件跳转去的地方只有1~2个字的程序段,那么可以用一条单周期条件,如:XCn,con[,con[,con]];条件满足,n=1,就执行紧随其后的的一条指令,n=2

8、,就执行紧

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。