系统架构师考试——程序计数器 PC, 指令寄存器IR、状态寄存器SR、通用寄存器GR
● 计算机执行程序时,在一个指令周期的过程中,为了能够从内存中读指令操作码,首先是将__(9)___的内容送到地址总线上。
(9)A.程序计数器PC B.指令寄存器IR
C.状态寄存器SR D.通用寄存器GR
【歪理邪说】
关键词,“计算机执行程序时”,“首先是将”。
参考答案:A
【知识点】
l 程序计数器是什么?
程序计数器是用于存放下一条指令所在单元的地址的地方。
单片机及汇编语言中常称作PC(program counter)。
l PC是什么单词的缩写
Program Counter
l 为什么需要程序计数器
为了保证程序(在操作系统中理解为进程)能够连续地执行下去,CPU必须具有某些手段来确定下一条指令的地址。程序计数器正是起到这种作用,所以通常又称为指令计数器。
l 程序计数器的处理流程
在程序开始执行前,必须将它的起始地址,即程序的一条指令所在的内存单元地址送入PC,因此程序计数器(PC)的内容即是从内存提取的第一条指令的地址。当执行指令时,CPU将自动修改PC的内容,即每执行一条指令PC增加一个量,这个量等于指令所含的字节数,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单的对PC加1。
l 程序计数器的异常处理流程
但是,当遇到转移指令如JMP指令时,后继指令的地址(即PC的内容)必须从指令寄存器中的地址字段取得。在这种情况下,下一条从内存取出的指令将由转移指令来规定,而不像通常一样按顺序来取得。因此程序计数器的结构应当是具有寄存信息和计数两种功能的结构。
另外参照
《计算机程序的执行过程》 http://blog.csdn.net/gaomatrix/article/details/7079061
《汇编语言基础之一 - CPU架构和寄存器种类简介》 http://www.cnblogs.com/awpatp/archive/2009/10/30/1593248.html
《计算机寄存器简介》 http://blog.csdn.net/chinajane163/article/details/7625351
百度百科《寄存器》 http://baike.baidu.com/link?url=FkNLU-ofC_NAzPj-xkrluKOnlRYztLtY6An6-_9uE1ODp3pIym5jms7U0_smy8fuhtiTnlL0mS1ICSlnqvTjQK
一。 计算机程序的执行过程
程序就是指令的集合
为使计算机按预定要求工作,首先要编制程序。程序是一个特定的指令序列,它告诉计算机要做哪些事,按什么步骤去做。指令是一组二进制信息的代码,用来表示计算机所能完成的基本操作。
1.程序
程序是为求解某个特定问题而设计的指令序列。程序中的每条指令规定机器完成一组基本操作。如果把计算机完成一次任务的过程比作乐队的一次演奏,那么控制器就好比是一位指挥,计算机的其它功能部件就好比是各种乐器与演员,而程序就好像是乐谱。计算机的工作过程就是执行程序的过程,或者说,控制器是根据程序的规定对计算机实施控制的。例如,对于算式

计算机的解题步骤可作如下安排:
步骤1:取a ;
步骤2:取b ;
步骤3:判断 ;
. 若 b≥0,执行步骤4
.若b<0,执行步骤6
步骤4:执行a+b;
步骤5:转步骤7;
步骤6:执行a-b;
步骤7:结束。
计算机的工作过程可归结为:取指令→分析指令→执行指令→再取下一条指令,直到程序结束的反复循环过程。通常把其中的一次循环称为计算机的一个指令周期。总之,我们可把程序对计算机的控制归结为每个指令周期中指令对计算机的控制。
2.指令
程序是由指令组成的。指令是机器所能识别的一组编制成特定格式的代码串,它要求机器在一个规定的时间段(指令周期)内,完成一组特定的操作。指令的基本格式可归结为操作码OP和操作数地址AD两部分,具体内容是:
⑴ 指出计算机应完成的一组操作内容,如传送(MOV)、加法(ADD)、减法(SUB)、输出、停机(HLT)、条件转移(JZ)等。这部分称为指令的操作码部分。
⑵ 两个操作数的地址和存放结果的地址及寻址方式。
⑶ 为保证程序执行的连续性,在执行当前指令时,还需指出下一条指令的地址。由于指令在存储器中一般是顺序存放的,所以只要设置一个指令指针(IP),每执行一条指令,IP自动加1,便自动指出下一条指令的地址,而不必在指令中专门指出下一条指令的地址 。只有在转移指令中才指出下一条指令的地址。此时,IP的内容将随转移指令所指示的内容改变。
3.指令的执行
指令规定的内容是通过控制器执行的,或者说控制器是按照一条指令的内容指挥操作的。
⑴ 控制器的功能
① 定序功能——保证按程序规定的顺序执行指令。
② 定时功能——计算机处理信息是通过信息在计算机的逻辑电路中的流通完成的。为保证计算机工作的准确性,控制器要为计算机 中的各部件提供统一节拍,使各条指令及组成每条指令的各基本操作(通常称为微操作)都严格地按规定的时间有条不紊地自动执行。
③ 操作控制功能——控制器应能按照指令规定的内容,在相应的节拍向有关部件发出操作控制信号。
⑵ 控制器的组成
在控制器中,上述功能分别由指令部件、时序部件和操作控制部件来完成。它们的组成如图1-8所示。

① 指令部件:指令部件的主要功能是取指令和分析指令。它由指令指针IP(也叫指令计数器IC或程序计数器PC)、指令寄存器IR、指令译码器、地址计算部件组成。其中:
●指令指针IP的功能是指出当前指令的地址。它有加1功能,通常每取一条指令后自动加1,以指出下条指令的地址。遇到特殊情况(如转移)可通过地址计算部件形成下一条指令的地址。
●指令寄存器IR保存由存储器取来的指令,并分别把操作码OP和操作数地址AD送指令译码和地址计算部件。
●指令译码器也称操作码译码器。它按操作码的内容向操作控制部件提供相应的操作电信号。
●地址计算部件的作用是对指令中地址码进行(变址、间址等)运算,求出的操作数地址送存储器以取出数据;或者把转移指令中指出的下一条指令地址送IP。
② 时序部件:时序部件也叫节拍发生器,它能为各部件提供一个时间基准。时钟频率(如800MHz,1GHz,2 GHz,2.4 GHz,3 GHz…)越高,计算机的工作速度就越快。
③ 操作控制部件:该部件的功能是根据指令译码器的规定内容,在规定的节拍内向有关部件发出操作控制信号。
⑶ 指令的执行过程
通常,计算机执行一条指令的步骤如下:
① 把指令指针IP中的指令地址送存储器,从该地址取出指令送指令寄存器IR;
② 地址计算部件,根据IR中的地址码形成操作数地址送存储器,从该地址取出数据,送到运算器中的寄存器(或寄存器组);
③ 将IR中的操作码OP送指令译码器进行译码;
④ 在控制器发出的操作信号的控制下,计算机各有关部件执行操作码OP规定的操作;
⑤ 指令指针IP加1,形成下一条指令地址。如遇到转移指令,则按转移指令对状态标志寄存器测试的结果,决定是否将转移指令中指出的指令地址送指令指针IP。
4.计算机的解题过程
要使计算机按预定要求工作,首先要编制程序。程序是一个特定的指令序列,它告诉计算机要做哪些事,按什么步骤去做。指令是一组二进制信息的代码,用来表示计算机所能完成的基本操作。不同的计算机所包含指令的种类和数目是不同的,通常把一台计算机所能执行的各类指令的集合,称为该机的指令系统。因此,在机器一级的程序设计,就是按照解题要求在机器指令系统中选择并有序组合解题需要的指令序列的过程。
使用计算机解题大致要经过程序设计→输入程序→执行程序等步骤。现以计算a+b-c为例来说明这一过程。
设a、b、c为已知的三个数,分别存放在主存的5~7号单元中,结果将存放在主存的8号单元。若采用单累加器结构的运算器,要完成上述计算至少需要5条指令,这5条指令依次存放在主存的0~4号单元中,参加运算的数也必须存放在主存指定的单元中,主存中有关单元的内容如图1-9(a)所示。运算器的简单框图如图1-9(b)所示,图中参加运算的一个操作数来自累加器,另一个来自主存,运算结果则放在累加器中。
计算机的控制器将控制指令的逐条、依次执行,最终得到正确的结果。具体步骤如下:
⑴ 执行取数指令,从主存5号单元取出数a,送入累加器中。
⑵ 执行加法指令,将累加器中的内容a与从主存6号单元取出的数b一起送到算术逻辑部件ALU(Arithmetic Logic Unit,ALU)中相加,结果a+b保留在累加器中。
⑶ 执行减法指令,将累加器中的内容a+b与从主存7号单元取出的数c一起送到算术逻辑部件ALU中相减,结果a+b-c保留在累加器中。
⑷ 执行存数指令,把累加器中的内容a+b-c存至主存8号单元。
⑸ 执行停机指令,计算机停止工作。
二。编译型和解释型语言
解释型语言:程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次。因此效率比较低。比如Basic语言,专门有一个解释器能够直接执行Basic程序,每个语句都是执行的时候才翻译。
系统架构师考试——程序计数器 PC, 指令寄存器IR、状态寄存器SR、通用寄存器GR的更多相关文章
- 系统架构师考试知识点mp3资料免费下载
场景 系统架构设计师考试,属于全国计算机技术与软件专业技术资格考试(简称计算机软件资格考试)中的一个高级考试. 系统架构设计师考试,考试不设学历与资历条件,不论年龄和专业,考生可根据自己的技术水平,选 ...
- 系统架构师JD
#################################################################################################### ...
- 2019SACC中国系统架构师大会 day1总结
早上:一. 爱奇艺的大数据中台战略: a) 介绍爱奇艺的产业文化.b) 通过大中台,可以进行部分数据的沉淀,用于后续的分析处理等等.. 从数据中台和业务中台,建立一种“苹果园“的生态系统.从原始的长视 ...
- 京东商城招聘自动调价系统架构师 T4级别
岗位级别:T4 岗位职责: 1.负责自动调价系统的架构设计 2.负责自动调价的预测.相关性算法设计 3.核心代码编写,代码review 任职要求: 1.熟悉数据挖掘.机器学习理论和算法 2.熟悉海量数 ...
- OCP知识点讲解 之 队列、资源与锁:RHCA|OCM|CCIE RedHat大中华地区前50位RHCA系统架构师:叶绍琛
一.队列与共享资源 共享资源可以被多个会话.进程同时访问,因此它的访问需要保护.Oracle中,除了PGA,所有的东西(包括内存.磁盘.CPU.表.索引.事务等等,种类太多,一概用东西两字来代表) ...
- Java系统架构师学习体系图
- Web 架构师的能力(转)
文/刘如鸿 最近和几个朋友在谈到时下流行的Web 2.0,也提到了其中最重要的角色——架构师.多方各有争执,不外乎是因为背景和视角的缘故,包括架构一词,本身就从建筑学借鉴而来,至于架构师,则可以 简单 ...
- AWS助理架构师认证考经
上周考了亚马逊的解决方案架构师-助理级别的认证考试并顺利通过.这也算是对自己AWS服务熟悉程度的一种检验.在准备考试的过程中,把自己学习到的AWS知识都梳理了一遍,也算是收获颇丰.这次特意分享了该认证 ...
- ios系统架构及常用框架
1.iOS基于UNIX系统,因此从系统的稳定性上来说它要比其他操作系统的产品好很多 2.iOS的系统架构分为四层,由上到下一次为:可触摸层(Cocoa Touch layer).媒体层(Media l ...
随机推荐
- C++语言基础(10)-虚继承
一.产生背景 先看下列一份代码: //间接基类A class A{ protected: int m_a; }; //直接基类B class B: public A{ protected: int m ...
- android proguard 保留内部类
今天在使用Proguard keep一个 静态内部类的时候,混淆完之后一直找不到那个静态内部类,内心抓狂啊. 最后在stackoverflow上找到了答案: -keepattributes Excep ...
- “Missing artifact....."的解决办法
在使用Maven开发时,总会碰到一些问题,例如"Missing artifact org.apache.commons:commons-csv:jar:1.0-SNAPSHOT", ...
- JQuery IN ACTION读书笔记之一: JQuery选择器
本章关注两个通过$()使用的常用功能: 通过选择器选择DOM元素,创建新DOM元素. 2.1 选择操作元素 JQuery采用了CSS的语法,而CSS的语法你可能已经很熟悉了.当然,JQuery也做了扩 ...
- 应用市场出新规,国内千款应用TargetSdkVersion调查分析
近期,谷歌针对Google Play上架应用发布强制性适配Android 8.0公告,要求自2018 年 8 月 1 日起,所有向 Google Play 首次提交的新应用都必须基于 Andro ...
- iOS开发之删除过期Provisioning Profiles方法
1.在finder下打开go -> go to folder输入: ~/Library/MobileDevice/Provisioning Profiles 2.查看上面的列表,依照时间顺序删除 ...
- CSS学习(二)- 有关 hasLayout 和 BFC
1. hasLayout 概念说明 ‘Layout’ 可以被某些 CSS property(特性)不可逆的触发,而某些 HTML 元素本身就具有 layout . ‘Layout’ 在 IE 中可以通 ...
- 这篇文章主要为大家详细介绍了jQuery密码强度验证控件使用详解的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了jQuery密码强度验证控件,供大家参考,具体内容如下 <html> <head> <meta http-equiv="Cont ...
- android自定义View_3——Optimizing the View
前言:现在你已经有了一个自定义的view了,并且支持手势和过度动画等属性,现在你要确认这个view 有够快的速度,为了使其在UI上不会显得迟钝或是卡停,你要保证view动画,能每秒最好有60帧. 一: ...
- android中文字斜着显示
/** * 自定义一个Textview * * @author Administrator * */ public class MyTextView extends TextView { public ...