当前位置:网站首页>Arm pc=pc+8 is the most understandable explanation
Arm pc=pc+8 is the most understandable explanation
2022-07-06 12:01:00 【csdndulala】
https://www.cnblogs.com/douzi2/p/4934202.html
Why is “PC = PC + 8”;
“PC = PC + 8” In fact, it's easy to get confused by writing like this .“PC = PC + 8” The real meaning should be :
Code address of execution place = PC - 8;
in other words ,”PC Address to “ leading “ Code address of execution place ”8 Bytes ;
in other words “PC = PC + 8” Second of PC, Actually, it means “ Code address of execution place ”
then , Understand why 8?
First ,arm The address width of is 4 Bytes , So every instruction executed ,PC It will add itself 4.
And an instruction must be completely arm absorption , It takes multiple steps , take arm7 For example, it adopts 3 Stage assembly line technology .
Assembly line , For our kind of play FPGA I can't be more familiar with , With 3 For the stage assembly line , Is to divide one thing into 3 A step , Each step is processed at the same time ,
The first two cycles are incubation period , Unable to produce results , After that, the results will continue to output .
Imagine , Instructions , Like products waiting to be processed , Running on the conveyor belt , and “FETCH”,“DECODE”,“EXECUTE”, Namely 3 A processing procedure .
1、 In the first cycle ,PC Point to the first program instruction , Carry out the value (FETCH),DECODE, and EXECUTE step “ In the air ”
2、 In the second cycle , next PC + 4,PC Point to the second program instruction to take value (FETCH),DECODE Processed in one cycle ,FETCH Instructions to ,EXECUTE Throw yourself into the air again .
3、 In the third cycle , still PC + 4,PC Point to the third program instruction to take value (FETCH),DECODE Processed in two cycles ,FETCH Instructions to ,
EXECUTE At this time , Processing in one cycle FETCH Instructions to , This instruction is also in the second cycle DECODE Instructions .
4、 Then every clock cycle ,EXECUTE It can be processed twice code, however PC Always ahead of it , That is to say : Code address of execution place = PC - 8;
and ARM9 By increasing the number of assembly lines , It simplifies the logic at all levels of the pipeline , Further improve the performance of the processor . use 5 Stage assembly line technology , But it's also “PC = PC + 8”,
Why is that ? Let's take a look at the picture :
We found that EXECUTE Still in the third step , And conform to : Code address of execution place = PC - 8; As long as you understand this, it's enough to read the code .
边栏推荐
- ESP学习问题记录
- TypeScript
- 树莓派 轻触开关 按键使用
- Mysql database interview questions
- RT-Thread API参考手册
- STM32 how to locate the code segment that causes hard fault
- FTP文件上传文件实现,定时扫描文件夹上传指定格式文件文件到服务器,C语言实现FTP文件上传详解及代码案例实现
- 高通&MTK&麒麟 手机平台USB3.0方案对比
- Those commonly used tool classes and methods in hutool
- Vert. x: A simple TCP client and server demo
猜你喜欢
随机推荐
数据分析之缺失值填充(重点讲解多重插值法Miceforest)
map文件粗略分析
Some concepts often asked in database interview
E-commerce data analysis -- User Behavior Analysis
JS object and event learning notes
锂电池基础知识
Several declarations about pointers [C language]
arduino获取随机数
.elf .map .list .hex文件
RT-Thread API参考手册
Variable parameter principle of C language function: VA_ start、va_ Arg and VA_ end
Nodejs connect mysql
Pytorch-温度预测
arduino JSON数据信息解析
MongoDB
[CDH] modify the default port 7180 of cloudera manager in cdh/cdp environment
Wangeditor rich text component - copy available
XML文件详解:XML是什么、XML配置文件、XML数据文件、XML文件解析教程
IOT system framework learning
电商数据分析--薪资预测(线性回归)