加载到程序计数器PC中在通过PAB可寻址64K字的空间.ppt
上传人:天马****23 上传时间:2024-09-11 格式:PPT 页数:19 大小:201KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

加载到程序计数器PC中在通过PAB可寻址64K字的空间.ppt

加载到程序计数器PC中在通过PAB可寻址64K字的空间.ppt

预览

免费试读已结束,剩余 9 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

程序计数器PC:PC是一个16位寄存器,其中保存着某个内部或外部程序存储器的地址,即指向即将访问的程序存储器的地址。加载地址到PC的几种途经:复位:PC=FF80h顺序执行:PC=PC+1跳转返回循环操作调用条件操作中断分支转移(跳转):执行跳转指令打断了程序执行的顺序,跳到程序存储器的某个位置去执行。当跳转指令到达流水线的执行阶段时,其后面的两个字已被取指。指令调用与返回:当调用子程序时,中断原程序执行的顺序,转到程序存储器的其它位置,同时把下一条指令的地址压入堆栈。**********************************************************TestXF2.asm*对TestXF1.asm稍作改进,用延时子程序设置较长的延时,*可以用试验板上的LED看到XF引脚电平的变化*********************************************************.mmregs;预定义的寄存器.defCodeStart;定义程序入口标记.text;程序区CodeStart:;程序入口SSBXXF;XF置1CALLDelay;调用延时程序RSBXXF;XF清0CALLDelay;调用延时程序BCodeStart;跳转到程序开头循环执行*******************************************************************************************************************延时子程序:Delay*用两级减一计数器来延时。调整AR1和AR2的大小LED闪烁的频率不同*********************************************************Delay:STM#999,AR1;循环次数1000LOOP1:STM#4999,AR2;循环次数5000LOOP2:BANZLOOP2,*AR2-;如果AR2不等于0,AR2减1,再判断BANZLOOP1,*AR1-;如果AR1不等于0,AR1减1,跳转到LOOP1RET.end**********************************************************注意这种延时方法并不精确,需要精确定时必须用定时器。*按此法延时的近似公式为:4*(AR2+1)*(AR1+1)*时钟周期*当DSP工作在50MHz(时钟周期20ns),AR1=999,AR2=4999时*延时约为400ms,则LED闪烁的周期为800ms,频率1.25Hz*********************************************************对于C548来讲,有一个7位程序扩展计数器XPC,用来选择当前的64K字页程序存储器。可以实现长跳转和长调用指令。FBFBACCFCALLFCALAFRETFRETE条件操作:当一个或多个条件得到满足时才执行。条件见表2.21当多重条件时,只能从第一组或第二组条件组合,见表2.22第一组:可从A类或B类中选择一个条件,但不能从同一类中选择两个;另外,两种条件测试的累加器必须是同一个。第二组:可以从A,B,C类各选择一个,但不能从同一类中选择两个。如果条件跳转去的地方只有1~2个字的程序段,那么可以用一条单周期条件,如:XCn,con[,con[,con]];条件满足,n=1,就执行紧随其后的的一条指令,n=2,就执行紧随其后的的二条指令。如果条件不满足,就执行一条或二条NOP指令。条件操作举例:例1:RCTC;若TC=1,则返回,否则往下执行例2:CCsub,BNEQ;若累加器B不等于0,则调用sub,否则往下执行。例3:BCnew,AGT,AOV;若累加器A>0且溢出,则转至new,否则往下执行例4:SACCDA,*AR3+0%,ALT;若A〈0,则A中内容移位ASM-16后存到*AR3中例5:STRCD*AR5-,AGT;若A>0,则把T寄存器中的内容存在*AR5中例6:SRCCD*AR5-,AGT;若A大于0,则把BRC中的内容存在*AR5中重复操作:1)重复执行单条指令:RPT和RPTZ,重复执行的次数存在重复计数器(RC),RC是由重复指令加载的,最大次数为655352)程序块重复操作:RPTB,例如:STM#99,BRC;99BRCRPTBNEXT-1..NEXT:…复位:复位RS是一种非屏蔽的外部中断,任何时候都可对54x进行复位,使器件进入已知状态。上电复位后RS必