Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
广州周立功单片机发展有限公司 Tel (020)38730976 38730916 Fax 38730925 http //www.zlgmcu.com<br />
u 当指令中指定了强制译码位时为 0 其它任何时候都为 s<br />
表 7-11 装载寄存器指令周期操作<br />
周期 地址 规格 写 数据 TRANS[1:0] Prot0 Prot1<br />
正常 1 pc+2i w/h 0 (pc+2i) N 周期 0 s<br />
2 pc’ w/h/b 0 (pc’) I 周期 1 u/s<br />
3 pc+3i w/h 0 - S 周期 1 s<br />
pc+3i - - - - - -<br />
dest=pc 1 pc+8 w 0 (pc+8) N 周期 0 s<br />
2 da w/h/b 0 pc’ I 周期 1 u/s<br />
3 pc+12 w 0 - N 周期 1 s<br />
4 pc’ w 0 (pc’) S 周期 0 s<br />
5 pc’+4 w 0 (pc’+4) S 周期 0 s<br />
pc’+8 - - - - - -<br />
基址或目标地址 或两者同时 可以是 PC 当 PC 被指令所影响时 预取指顺序发生改变 如果数据<br />
取指中止 <strong>ARM7TDMI</strong>-S 处理器防止对目标寄存器寄存器进行修改<br />
7.9 保存寄存器<br />
保存寄存器<br />
保存寄存器<br />
保存寄存器需要两个周期<br />
1. 在第 1 个周期中 <strong>ARM7TDMI</strong>-S 内核计算所要保存的地址<br />
2. 在第 2 个周期中 <strong>ARM7TDMI</strong>-S 内核执行基址修改并将数据写入存储器 如果需要<br />
保存寄存器周期时序见表 7-12 其中<br />
s 代表当前值与模式有关<br />
t 当指令 STRT 中指定了 T 位时为 0 其它任何时候都为 c<br />
表 7-12 保存寄存器指令周期操作<br />
周期 地址 规格 写 数据 TRANS[1:0] Prot0 Prot1<br />
1 pc+2i w/h 0 (pc+2i) N 周期 0 s<br />
2 da w/h/b 1 Rd N 周期 1 t<br />
pc+3i - - - - - -<br />
7.10 装载多个寄存器<br />
装载多个寄存器<br />
装载多个寄存器 LDM 占用 4 个周期<br />
1. 在第 1 个周期中 <strong>ARM7TDMI</strong>-S 内核在执行预取指时计算要转移的第 1 个字的地址<br />
2. 在第 2 个周期中 <strong>ARM7TDMI</strong>-S 内核取第 1 个字并执行基址修改<br />
3. 在第 3 个周期中 <strong>ARM7TDMI</strong>-S 内核将第 1 个字移到相应的的目标寄存器并从存储器中取第 2<br />
个字 <strong>ARM7TDMI</strong>-S 内部锁存修改的基址 以备在出现中止时之需 第 3 个周期连续的读取直<br />
到访问完最后一个数据字<br />
4. 在第 4 个和最后 内部 一个周期中 <strong>ARM7TDMI</strong>-S 内核将最后一个字移入目标寄存器 最后<br />
一个周期可以与下一个指令预取指合并构成一个存储器 N 周期<br />
当发生中止时 指令继续执行直到完成 <strong>ARM7TDMI</strong>-S 内核在中止后禁止所有寄存器的写操作<br />
<strong>ARM7TDMI</strong>-S 内核改变最后一个周期以恢复修改的基址寄存器 在中止发生之前的装载可能被覆盖<br />
当 PC 位于要装载的寄存器列表中时 <strong>ARM7TDMI</strong>-S 内核任务当前指令流水线无效 PC 总是最后一个<br />
装载的寄存器 因此在任意点发生的中止不会使 PC 被改写<br />
- 72 -