程序和指令的关系 1条指令的执行过程 机器指令的执行过程
南京大学公开课:计算机系统基础(二)程序的执行和存储访问-第1讲 程序和指令的关系-网易公开课 https://open.163.com/newview/movie/free?pid=BFBG7RAVL&mid=NFBG8ROIR
【计算机系统基础(二)南京大学 主讲:袁春风 南京大学】https://www.bilibili.com/video/BV1rE41127Re
南京大学公开课:计算机系统基础(二)程序的执行和存储访问-第2讲 一条指令的执行过程-网易公开课 https://open.163.com/newview/movie/free?pid=BFBG7RAVL&mid=DFBG8ROO5
第1周程序执行概述
第1讲程序和指令的关系
第2讲一条指令的执行过程
第3讲在IA-32中一条指令的执行过程
第4讲CPU的基本功能与结构
程序及指令的执行过程
°程序和指令的关系•程序由一条一条指令组成,指令按顺序存放在内存连续单元
°程序的执行:周而复始地执行一条一条指令•正常情况下,指令按其存放顺序执行•遇到需改变程序执行流程时,用相应的转移指令(包括无条件转移指令、条件转移指令、调用指令和返回指令等)来改变程序执行流程
°程序的执行流的控制•将要执行的指令所在存储单元的地址由程序计数器PC给出,通过改变PC的值来控制执行顺序
°指令周期:CPU取出并执行一条指令的时间
cycle per instruction



程序执行需要解决的问题
如何判定每条指令有多长?如何判定操作类型、寄存器编号、立即数等?如何区分第2行和第3行mov指令的不同?如何确定操作数是在寄存器中还是在存储器中?一条指令执行结束后如何正确读取到下一条指令?

异常:指令无法执行,原因:缺页、越界、操作数未定义

异常是在CPU内部发生的,中断是由外部事件引起的
机器指令的执行过程
°取指令:从PC所指单元取出指令送指令寄存器(IR),并增量PC。•如add函数,开始PC(IA-32的EIP)中存放的是0x0848394,CPU根据PC取指令送IR,每次总是取最长指令字节数,假定最长指令是4个字节,即IR为32位,此时,也即55 89 E5 8BH被取到IR中。
°指令译码:不同指令其功能不同,因而需要不同的操作控制信号。•CPU根据不同操作码译出不同控制信号。对于上述取到IR中的55 89 E58BH译码时,可根据高5位01010译码得到push指令的控制信号。
°源操作数地址计算并取操作数:根据寻址方式确定源操作数地址计算方式,若是存储器数据,则需一次或多次访存;若为间接寻址或两操作数都在存储器的双目运算,则需多次访存;若是寄存器数据,则直接从寄存器取数。
°执行数据操作:在ALU或加法器等运算部件中对取出的源操作数进行运算。
°目的操作数地址计算并存结果:根据寻址方式确定目的操作数地址计算方式,若是存储器数据,则需要一次或多次访存(间接寻址时);若是寄存器数据,则在进行数据操作时直接存结果到寄存器。
°指令地址计算并将其送PC。顺序执行时,PC加上当前指令长度;遇到转移类指令时,则需要根据条件码、操作码和寻址方式等确定下条指令地址。
机器指令的执行过程
° 每条指令的功能总是由以下四种基本操作来实现:
读取某一主存单元的内容,并将其装入某个寄存器(取指, 取数)
把一个数据从某个寄存器存入给定的主存单元中(存结果)
把一个数据从某寄存器送到另一寄存器或者ALU(取数,存结果)
进行算术或逻辑运算(PC+”1”,计算地址,运算)
指令执行过程中查询各种异常情况,并在发现异常时转异常处理
指令执行结束时查询中断请求,并在发现中断请求时响应中断
° 操作功能可形式化描述
描述语言称为寄存器传送语言RTL (Register Transfer Language)
冯.诺依曼结构模型机
不同架构支持的指令集不同,同一种指令的实现方式和功能也可能不同

IA-32的体系结构

链接:https://www.dianjilingqu.com/585206.html