第3章微机系统中的微处理器课件

上传人:91274****mpsvz 文档编号:241298376 上传时间:2024-06-16 格式:PPT 页数:52 大小:876.25KB
返回 下载 相关 举报
第3章微机系统中的微处理器课件_第1页
第1页 / 共52页
第3章微机系统中的微处理器课件_第2页
第2页 / 共52页
第3章微机系统中的微处理器课件_第3页
第3页 / 共52页
点击查看更多>>
资源描述
微处理器的是组成计算机系统的核心部件,其基本功微处理器的是组成计算机系统的核心部件,其基本功能为:能为:(1)支持功能完善的指令系统,进行各种算术、逻辑)支持功能完善的指令系统,进行各种算术、逻辑运算,通过程序完成复杂的科学计算。运算,通过程序完成复杂的科学计算。(2)支持各种结构的程序的执行,如程序的分支、循)支持各种结构的程序的执行,如程序的分支、循环、嵌套、子程序的调用和返回、中端服务程序。环、嵌套、子程序的调用和返回、中端服务程序。(3)控制与存储器、外设等相连接,组成完整的微机)控制与存储器、外设等相连接,组成完整的微机系统。系统。3.1 微处理器的一般结构微处理器的一般结构3.1.1 微处理器的内部结构微处理器的内部结构一、微处理器的功能一、微处理器的功能 微处理器的是组成计算机系统的核心部件,其基本功能为:1程序计数器(PC)指令寄存器(IR)指令译码器(ID)控制逻辑部件堆栈指示器(SP)处理机状态字(PSW)控制器I/O控制逻辑工作寄存器地址寄存器数据寄存器.ALU3.1.1 微处理器的内部结构微处理器的内部结构程序计数器(PC)指令寄存器(IR)指令译码器(ID)控制逻2指令的执行过程指令的执行过程3.1.1 微处理器的内部结构微处理器的内部结构指令的执行过程3.1.1 微处理器的内部结构3 外部结构外部结构输入输入/输出引脚输出引脚微处理器级总线微处理器级总线 微处理器通过微处理器级总线与外部部件和设备相微处理器通过微处理器级总线与外部部件和设备相联系。联系。1总线的功能总线的功能和存储器之间交换信息和存储器之间交换信息和和I/O设备之间交换信息设备之间交换信息为了系统工作而接收和输为了系统工作而接收和输出必要的信号,如输入时钟脉出必要的信号,如输入时钟脉冲、复位信号、电源和接地等冲、复位信号、电源和接地等2总线的分类总线的分类数据总线(数据总线(Data Bus)地址总线(地址总线(Address Bus)控制总线(控制总线(Control Bus)一总线功能与分类一总线功能与分类3.1.2 微处理器的外部结构微处理器的外部结构 外部结构输入/输出引脚微处理器级总线1总线的4 存储器通常由几个模块组成,每个模块有几千个单元,每存储器通常由几个模块组成,每个模块有几千个单元,每个存储单元有唯一的存储器地址与其对应。个存储单元有唯一的存储器地址与其对应。二存储器和二存储器和I/O地址空间地址空间 I/O接口接口保证数据、控制与状态信息在保证数据、控制与状态信息在CPU和和I/O设备设备之间正常传送的电路。之间正常传送的电路。I/O和和CPU之间的通信利用称为之间的通信利用称为I/O端口端口的寄存器来完成。的寄存器来完成。对应一个对应一个I/O设备的设备的I/O接口,可能包括几个接口,可能包括几个I/O端口,每端口,每个个I/O端口都有一个唯一的端口都有一个唯一的I/O地址与其对应。地址与其对应。3.1.2 微处理器的外部结构微处理器的外部结构 存储器通常由几个模块组成,每个模块有几千个单元,每个5 存储单元和存储单元和I/O端口以字节为单位存放数据,每个字节对端口以字节为单位存放数据,每个字节对应一个应一个标识地址标识地址。地址总线的条数即为二进制地址码的位数,它可能表示地址总线的条数即为二进制地址码的位数,它可能表示的不同地址的集合称为的不同地址的集合称为地址空间地址空间。地址码的位数决定了地址空间的大小:地址码的位数决定了地址空间的大小:2n二存储器和二存储器和I/O地址空间地址空间单地址空间:对存储器和单地址空间:对存储器和I/O端口统一进行编址。端口统一进行编址。双地址空间:对存储器和双地址空间:对存储器和I/O端口独立进行编址。端口独立进行编址。存储器:存储器:高位高位选择模块,低位选择模块,低位选择模块内的存储单元。选择模块内的存储单元。I/O设备:高位设备:高位选择选择I/O接口,低位接口,低位选择选择I/O端口。端口。3.1.2 微处理器的外部结构微处理器的外部结构 存储单元和I/O端口以字节为单位存放数据,每个6 8086由两个独立的逻辑单元组成,即总线接口单元由两个独立的逻辑单元组成,即总线接口单元(BIU)和执行单元()和执行单元(EU)。)。BIU的任务:的任务:执行总线操作。执行总线操作。(1)访问存储器,包括取指令、取操作数、存结果等。)访问存储器,包括取指令、取操作数、存结果等。(2)与)与I/O之间的信息传输。之间的信息传输。EU的任务:的任务:执行指令,进行全部算术和逻辑运算、完成偏执行指令,进行全部算术和逻辑运算、完成偏移地址的计算,向移地址的计算,向BIU提供指令执行结果的数据和访问存储器提供指令执行结果的数据和访问存储器需要的偏移地址,并对通用寄存器和标志寄存器进行管理。需要的偏移地址,并对通用寄存器和标志寄存器进行管理。3.2 8086的功能结构的功能结构 8086由两个独立的逻辑单元组成,即总线接口71 2 3 4 5 6内部寄存器内部寄存器 IP ES SS DS CS总线控制总线控制电路电路EU控制器控制器ALU标志寄存器标志寄存器 AH AL BH BLCH CL DH DL SP BP SI DI通用通用寄存器寄存器地址地址加法器加法器指令队列指令队列执行单元执行单元(EU)总线接口单元总线接口单元(BIU)16位位20位位16位位8位位ALU数据总线数据总线数据数据总线总线8086总线总线3.2 8086的内部结构的内部结构1 2 3 4 5 6内部寄8(3)EU取得指令,译码并执行指令。若指令需要取操作数或存操作结取得指令,译码并执行指令。若指令需要取操作数或存操作结果,需要访问存储器或果,需要访问存储器或I/O,EU向向BIU发出访问总线请求。当发出访问总线请求。当BIU接到接到EU的总线请求,若正忙,则须等的总线请求,若正忙,则须等BIU执行完当前的总线周期,才能响应执行完当前的总线周期,才能响应EU的的请求;若请求;若BIU空闲,则立即执行空闲,则立即执行EU申请总线的请求。申请总线的请求。(1)BIU的指令队列有两个或两个以上字节为空时,的指令队列有两个或两个以上字节为空时,BIU自动启动总线自动启动总线周期,取指填充指令队列。直至队列满,进入空闲状态。周期,取指填充指令队列。直至队列满,进入空闲状态。(2)EU每执行完一条指令,从指令队列的队首取指。每执行完一条指令,从指令队列的队首取指。特殊情况特殊情况:系统:系统初始化后,指令队列为空,初始化后,指令队列为空,EU等待等待BIU从内存取指,填充指令队列。从内存取指,填充指令队列。(4)EU执行转移、调用和返回指令时,若下一条指令不在指令队列中,执行转移、调用和返回指令时,若下一条指令不在指令队列中,则队列被自动清除,则队列被自动清除,BIU根据本条指令执行情况重新取指填充指令队列。根据本条指令执行情况重新取指填充指令队列。流水线技术原则流水线技术原则(3)EU取得指令,译码并执行指令。若指令需要取操作数或存操9取指令取指令取操作数取操作数(如果需要如果需要)执行指令执行指令写入存储器。写入存储器。8086首次引入了流水线技术,执行指令和总线访问可以同时首次引入了流水线技术,执行指令和总线访问可以同时进行,提高了总线利用率。进行,提高了总线利用率。8086/8088以前的以前的CPU指令流水线指令流水线取指令取操作数(如果需要)执行指令写入存储器。8103.3 8086的寄存器结构的寄存器结构 AX AH AL BX BH BL 数据寄存器数据寄存器 CX CH CL (8/16位)位)DX DH DL 通用寄存器通用寄存器 SP 堆栈指针堆栈指针 BP 基址指针基址指针 指针指针/变址寄存器变址寄存器 SI 源变址源变址(16位)位)DI 目的变址目的变址 CS 代码段代码段 DS 数据段数据段 段寄存器段寄存器 SS 堆栈段堆栈段(16位)位)ES 附加段附加段 专用寄存器专用寄存器 IP 指令指针指令指针 控制寄存器控制寄存器 FLAG 标志寄存器标志寄存器(16位)位)3.3 8086的寄存器结构113.3.1 通用寄存器组通用寄存器组一、数据寄存器一、数据寄存器(1)16位数据寄存器位数据寄存器 AX累加器,使用频度最高,用于算术、逻辑运算累加器,使用频度最高,用于算术、逻辑运算 以及与外设传送信息等;以及与外设传送信息等;BX基址寄存器,常用做存放存储器基地址;基址寄存器,常用做存放存储器基地址;CX计数器,循环和串操作等指令中的隐含计数器;计数器,循环和串操作等指令中的隐含计数器;DX数据寄存器,常用来存放双字长数据的高数据寄存器,常用来存放双字长数据的高16位,位,或存放外设端口地址。或存放外设端口地址。(2)8位数据寄存器:位数据寄存器:AH BH CH DH AL BL CL DL3.3.1 通用寄存器组一、数据寄存器(1)16位数据寄123.3.1 通用寄存器组通用寄存器组二、地址指针和变址寄存器二、地址指针和变址寄存器变址寄存器常用于存储器寻址时提供地址:变址寄存器常用于存储器寻址时提供地址:SI源变址寄存器源变址寄存器 DI目的变址寄存器目的变址寄存器指针寄存器用于寻址内存堆栈内的数据:指针寄存器用于寻址内存堆栈内的数据:SP堆栈指针,指示栈顶的偏移地址。堆栈指针,指示栈顶的偏移地址。SP不能再用于其他目的,具有专用目的。不能再用于其他目的,具有专用目的。BP基址指针,表示数据在堆栈段中的基地址基址指针,表示数据在堆栈段中的基地址。SP和和BP寄存器与寄存器与SS段寄存器联合使用以确定堆栈段中的存储段寄存器联合使用以确定堆栈段中的存储单元地址。单元地址。3.3.1 通用寄存器组二、地址指针和变址寄存器变址寄存138086有有4个个16位段寄存器:位段寄存器:CS Code Segment,执行程序所在段的段地址,执行程序所在段的段地址 SS Stack Segment,堆栈段的段地址,堆栈段的段地址 DS Data Segment,数据段的段地址,数据段的段地址 ES Extra Segment,附加段的段地址,附加段的段地址3.3.2 段寄存器组段寄存器组8086有4个16位段寄存器:3.3.2 段寄存器组143.3.3 控制寄存器组控制寄存器组指令指针寄存器指令指针寄存器IP(Instruction Pointer):):指示下一条要执行指令的偏移地址,计算机通过指示下一条要执行指令的偏移地址,计算机通过CS 和和 IP来控制指令序列的执行流程。来控制指令序列的执行流程。IP寄存器是一个专用寄存器。寄存器是一个专用寄存器。标志寄存器(标志寄存器(FLAG):):状态标志状态标志记录程序运行结果的状态信息,许多指令记录程序运行结果的状态信息,许多指令的执行都将相应地设置它。的执行都将相应地设置它。CF ZF SF PF OF AF 控制标志控制标志可由程序根据需要用指令设置,用于控制可由程序根据需要用指令设置,用于控制处理器执行指令的方式。处理器执行指令的方式。DF IF TF3.3.3 控制寄存器组指令指针寄存器IP(Instru153.3.3 控制寄存器组控制寄存器组标志寄存器(标志寄存器(FLAG)D15D0 OF DF IF TF SF ZF AF PF CF进进位位标标志志奇奇偶偶标标志志辅辅助助进进位位标标志志符符号号标标志志单单步步中中断断中中断断允允许许方方向向标标志志溢溢出出标标志志1-有进、借位有进、借位0-无进、借位无进、借位1-低低8位有偶数个位有偶数个10-低低8位有奇数个位有奇数个11-低低4位向高位向高4位有进、借位位有进、借位0-低低4位向高位向高4位无进、借位位无进、借位1-结果为结果为00-结果不为结果不为0零零标标志志3.3.3 控制寄存器组标志寄存器(FLAG)D15D016进位标志进位标志CF:当运算结果的最高有效位有进位(加法)或借位当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置(减法)时,进位标志置1,即,即CF=1;否则;否则CF=0。例如:例如:3AH+7CHB6H,没有进位:没有进位:CF=0 AAH+7CH(1)26H,有进位:有进位:CF=1溢出标志溢出标志OF:若算术运算的结果有溢出,则若算术运算的结果有溢出,则OF=1;否则;否则 OF0例如:例如:3AH+7CHB6H,产生溢出:产生溢出:OF=1 AAH+7CH(1)26H,没有溢出:没有溢出:OF=0标志寄存器(标志寄存器(FLAG)进位标志CF:当运算结果的最高有效位有进位(加法)或借位(减17标志寄存器(标志寄存器(FLAG)问题:问题:1.什么是溢出?什么是溢出?2.溢出和进位有什么区别?溢出和进位有什么区别?3.处理器怎么处理,程序员如何运用?处理器怎么处理,程序员如何运用?4.如何判断是否溢出?如何判断是否溢出?标志寄存器(FLAG)问题:18处理器内部以补码表示有符号数。处理器内部以补码表示有符号数。8个二进制位能够表达的整数范围是:个二进制位能够表达的整数范围是:+127 -128如果运算结果超出了这个范围,就是产生了溢出。如果运算结果超出了这个范围,就是产生了溢出。有溢出,说明有符号数的运算结果不正确。有溢出,说明有符号数的运算结果不正确。1.什么是溢出?什么是溢出?标志寄存器(标志寄存器(FLAG)例如:例如:3AH+7CHB6H,即,即58+124182,已经超出,已经超出-128 127范围,产生溢出,所以范围,产生溢出,所以OF=1;另一方面,补码;另一方面,补码B6H表达真表达真值是值是-74,显然运算结果也不正确。,显然运算结果也不正确。处理器内部以补码表示有符号数。1.什么是溢出?标志寄存器(19溢出标志溢出标志OF和进位标志和进位标志CF是两个意义不同的标志。是两个意义不同的标志。进位标志表示进位标志表示无符号数无符号数运算结果是否超出范围,运算运算结果是否超出范围,运算结果仍然结果仍然正确正确;溢出标志表示溢出标志表示有符号数有符号数运算结果是否超出范围,运算运算结果是否超出范围,运算结果已经结果已经不正确不正确。2.溢出和进位溢出和进位标志寄存器(标志寄存器(FLAG)溢出标志OF和进位标志CF是两个意义不同的标志。2.溢出和20例例1:3AH+7CHB6H无符号数运算:无符号数运算:58124182,范围内,无进位,范围内,无进位有符号数运算:有符号数运算:58124182,范围外,有溢出,范围外,有溢出2.溢出和进位溢出和进位标志寄存器(标志寄存器(FLAG)例例2:AAH+7CH(1)26H无符号数运算:无符号数运算:170124294,范围外,有进位,范围外,有进位有符号数运算:有符号数运算:8612438,范围内,无溢出,范围内,无溢出例1:3AH+7CHB6H2.溢出和进位标志寄存器(21 处理器对两个操作数进行运算时,按照无符号数求得结处理器对两个操作数进行运算时,按照无符号数求得结果,并相应设置进位标志果,并相应设置进位标志CF;同时,根据是否超出有符号数;同时,根据是否超出有符号数的范围设置溢出标志的范围设置溢出标志OF。3.如何应用溢出和进位标志如何应用溢出和进位标志标志寄存器(标志寄存器(FLAG)应该利用哪个标志,则由程序员来决定。也就是说,应该利用哪个标志,则由程序员来决定。也就是说,如果将参加运算的操作数认为是无符号数,就应该关心进如果将参加运算的操作数认为是无符号数,就应该关心进位;认为是有符号数,则要注意是否溢出。位;认为是有符号数,则要注意是否溢出。处理器对两个操作数进行运算时,按照无符号数求22 判断运算结果是否溢出有一个简单的规则:判断运算结果是否溢出有一个简单的规则:只有当两个相同符号数相加(异号数相减可转化为同只有当两个相同符号数相加(异号数相减可转化为同号数相加),而运算结果的符号与原数据符号相反时,产号数相加),而运算结果的符号与原数据符号相反时,产生溢出;因为,此时的运算结果显然不正确。生溢出;因为,此时的运算结果显然不正确。其他情况下,则不会产生溢出。其他情况下,则不会产生溢出。4.溢出的判断溢出的判断标志寄存器(标志寄存器(FLAG)判断运算结果是否溢出有一个简单的规则:4.233.4 8086的存储器组织的存储器组织3.4.1 存储器地址空间和数据存储格式存储器地址空间和数据存储格式8086的存储器是以字节(的存储器是以字节(Byte,8位)为单位组织的。位)为单位组织的。20条地址总线,可寻址的存储器地址空间为条地址总线,可寻址的存储器地址空间为220B(1MB)。)。每个存储单元都有一个编号每个存储单元都有一个编号 存储器地址存储器地址每个存储单元存放一个字节的内容每个存储单元存放一个字节的内容二进制位二进制位1位二进制数:位二进制数:0或或1。字节字节8个二进制位个二进制位,D7D0。字字16位,位,2个字节,个字节,D15D0。双字双字32位,位,4个字节个字节,D31D0。信息的表达单位:信息的表达单位:3.4 8086的存储器组织3.4.1 存储器地址空243.4 8086的存储器组织的存储器组织3.4.1 存储器地址空间和数据存储格式存储器地址空间和数据存储格式两个连续的字节,为一个字:低对低,高对高(小端方式)。两个连续的字节,为一个字:低对低,高对高(小端方式)。字的地址指低字节的地址。字的地址指低字节的地址。字的地址为偶地址,称字的存储是对准的,访问时只需一个总字的地址为偶地址,称字的存储是对准的,访问时只需一个总线周期。线周期。字的地址为奇地址,称字的存储是未对准的,访问时要两个总字的地址为奇地址,称字的存储是未对准的,访问时要两个总线周期。线周期。字:字:0002H=1234H 0003H=5612H12H 34H78H 56H0000H0002H0004HD7 D0字节:字节:0002H=34H 0003H=12H3.4 8086的存储器组织3.4.1 存储器地址空253.4 8086的存储器组织的存储器组织3.4.2 存储器分段管理和物理地址的形成存储器分段管理和物理地址的形成 对应每个存储单元都有一个唯一的对应每个存储单元都有一个唯一的20位编号,即位编号,即物理地址物理地址。00000HFFFFFH 8086CPU采用地址分段方法管理存储器,即用逻辑地址表示一采用地址分段方法管理存储器,即用逻辑地址表示一个存储器单元地址:个存储器单元地址:段基地址段基地址:段内偏移地址段内偏移地址 段地址左移段地址左移4位偏移地址位偏移地址20位物理地址位物理地址 例如例如:逻辑地址逻辑地址“1460H:100H”=物理地址物理地址14700H 显然,一个物理地址可以有多个逻辑地址。显然,一个物理地址可以有多个逻辑地址。3.4 8086的存储器组织3.4.2 存储器分段管263.4 8086的存储器组织的存储器组织3.4.2 存储器分段管理和物理地址的形成存储器分段管理和物理地址的形成偏移地址:偏移地址:说明主存单元距离段起始位置的偏移量。说明主存单元距离段起始位置的偏移量。每段不超过每段不超过64KB,偏移地址也可用,偏移地址也可用16位数据表示。位数据表示。段地址:段地址:说明逻辑段在主存中的起始位置。说明逻辑段在主存中的起始位置。8086规定段地址必须是模规定段地址必须是模16地址:地址:xxxx0H 省略低省略低4位位0000B,段地址就可以用,段地址就可以用16位数据表示,就能位数据表示,就能用用16位段寄存器表达段地址。位段寄存器表达段地址。3.4 8086的存储器组织3.4.2 存储器分段管273.4 8086的存储器组织的存储器组织3.4.2 存储器分段管理和物理地址的形成存储器分段管理和物理地址的形成8086对逻辑段的要求是:对逻辑段的要求是:段地址低段地址低4位均为位均为0,每段最大不超过,每段最大不超过64KB。每个段不要求必须是每个段不要求必须是64KB,段与段可以重叠。,段与段可以重叠。1MB空间最多能分成多少个段?空间最多能分成多少个段?每隔每隔64K个存储单元开始一个段,所以个存储单元开始一个段,所以1MB最少有:最少有:22021616 个段个段 每隔每隔16个存储单元就可以开始一个段,所以个存储单元就可以开始一个段,所以1MB最多有:最多有:2201621664K 个段个段1MB空间最少能分成多少个段?空间最少能分成多少个段?3.4 8086的存储器组织3.4.2 存储器分段管283.4 8086的存储器组织的存储器组织3.4.3 信息的分段存储与段寄存器的关系信息的分段存储与段寄存器的关系程序区:程序区:存储程序的指令代码,由存储程序的指令代码,由CS划定并控制。划定并控制。数据区:数据区:存储原始数据、中间结果和最后结果,由存储原始数据、中间结果和最后结果,由DS和和ES控制。控制。堆栈区:堆栈区:存储需要压入堆栈的数据和状态信息,由存储需要压入堆栈的数据和状态信息,由SS控制。控制。注意:注意:(1)访问存储器时,段地址由)访问存储器时,段地址由默认段寄存器默认段寄存器提供,或由提供,或由“指指定定”的段寄存器提供;的段寄存器提供;(2)DS、ES和和SS的内容用传送指令置入,但不能向的内容用传送指令置入,但不能向CS中置中置入数;入数;(3)偏移地址的获得有约定。)偏移地址的获得有约定。3.4 8086的存储器组织3.4.3 信息的分段存29程序员如何分配各个逻辑段?程序员如何分配各个逻辑段?3.3 8086的存储器组织的存储器组织3.4.3 信息的分段存储与段寄存器的关系信息的分段存储与段寄存器的关系程序的指令序列必须安排在程序的指令序列必须安排在代码段代码段;程序使用的堆栈一定在程序使用的堆栈一定在堆栈段堆栈段;程序中的数据程序中的数据默认默认是安排在数据段,也经常安排在附加段,是安排在数据段,也经常安排在附加段,尤其是串操作的目的区必须是附加段。尤其是串操作的目的区必须是附加段。数据的存放比较灵活,实际上可以存放在任何一种逻辑段中。数据的存放比较灵活,实际上可以存放在任何一种逻辑段中。程序员如何分配各个逻辑段?3.3 8086的存储器组织330各个逻辑段独立示意图各个逻辑段独立示意图各个逻辑段独立示意图31各个逻辑段重叠示意图各个逻辑段重叠示意图各个逻辑段重叠示意图323.5 8086的的I/O组织组织 I/O接口与接口与CPU之间的通信是利用称为之间的通信是利用称为I/O端口端口的寄存器的寄存器来完成的。微型机系统要为来完成的。微型机系统要为I/O芯片的每个端口分配一个地芯片的每个端口分配一个地址,各个端口有唯一的址,各个端口有唯一的I/O地址与之对应,是单独编址的。地址与之对应,是单独编址的。8086CPU地址总线的地址总线的低低16位位用来对用来对8位位I/O端口寻址,端口寻址,I/O地址空间为地址空间为65536,即可访问,即可访问65536个个8位的位的I/O端口,寻址范端口,寻址范围是围是64KB。任何两个编号相邻的。任何两个编号相邻的8位端口可以组成一个位端口可以组成一个16位位端口。端口。3.5 8086的I/O组织 I/O接口与CP333.5 8086的数据寻址方式的数据寻址方式指令由操作码和操作数两部分组成:指令由操作码和操作数两部分组成:操作码:操作码:说明计算机要执行哪种操作,如传送、运算、移位、说明计算机要执行哪种操作,如传送、运算、移位、跳转等操作,它是指令中不可缺少的组成部分。跳转等操作,它是指令中不可缺少的组成部分。操作码操作数操作数操作数:指令执行的参与者,即各种操作的对象。指令执行的参与者,即各种操作的对象。有些指令不需要操作数,通常的指令都有一个或两个操作数,有些指令不需要操作数,通常的指令都有一个或两个操作数,也有个别指令有也有个别指令有3个甚至个甚至4个操作数。个操作数。3.5 8086的数据寻址方式指令由操作码和操作数两部分343.6 8086的数据寻址方式的数据寻址方式 指令中的指令中的操作数操作数,可以是一个具体的数值,可以是存放数据,可以是一个具体的数值,可以是存放数据的寄存器,或指明数据在主存位置的存储器地址。的寄存器,或指明数据在主存位置的存储器地址。指令系统设计了多种操作数的来源,寻找操作数的过指令系统设计了多种操作数的来源,寻找操作数的过程就是操作数的程就是操作数的寻址方式寻址方式。8086的数据寻址方式有:的数据寻址方式有:立即数寻址方式立即数寻址方式 寄存器寻址方式寄存器寻址方式 存储器寻址方式存储器寻址方式 隐含寻址隐含寻址-以后学习以后学习3.6 8086的数据寻址方式 指令中的操353.6 8086的数据寻址方式的数据寻址方式MOV dest,src;destsrc ;MOV指令的功能是将源操作数指令的功能是将源操作数src ;传送至目的操作数;传送至目的操作数destMOV AL,05H ;AL05HMOV BX,AX ;BXAXMOV AX,SI ;AXDS:SIMOV AX,BP+06H ;AXSS:BP+06HMOV AX,BX+SI ;AXDS:BX+SI指令的助记符格式:指令的助记符格式:操作码操作码 操作数操作数1,操作数操作数2;注释;注释3.6 8086的数据寻址方式MOV dest,s36立即数寻址立即数寻址 指令中的操作数直接存放在机器代码中,紧跟在操作码指令中的操作数直接存放在机器代码中,紧跟在操作码之后(操作数作为指令的一部分存放在操作码之后的主存单之后(操作数作为指令的一部分存放在操作码之后的主存单元中)。元中)。可以是可以是8位数位数i8(00HFFH),),可以是可以是16位数位数i16(0000HFFFFH)。)。立即数寻址方式常用来给寄存器赋值。立即数寻址方式常用来给寄存器赋值。MOV AL,05H;AL05HMOV AX,0102H;AX0102HA1H00H05HA1H00H02H01H小地址端小地址端大地址端大地址端立即数寻址 指令中的操作数直接存放在机器代码中,紧跟37寄存器寻址寄存器寻址MOV AX,1234H ;AX1234HMOV BX,AX ;BXAX操作数存放在操作数存放在CPU的内部寄存器的内部寄存器REG中中8位寄存器位寄存器R8:AH/AL/BH/BL/CH/CL/DH/DL 16位寄存器位寄存器R16:AX/BX/CX/DX/SI/DI/BP/SP4个段寄存器个段寄存器SEG:CS/DS/SS/ES 寄存器寻址MOV AX,1234H 38存储器寻址存储器寻址 指令中给出操作数的主存地址信息(偏移地址,称之为有指令中给出操作数的主存地址信息(偏移地址,称之为有效地址效地址EA),而段地址在默认的或用段超越前缀指定的段寄),而段地址在默认的或用段超越前缀指定的段寄存器中。存器中。8086设计了多种存储器寻址方式:设计了多种存储器寻址方式:直接寻址方式直接寻址方式 寄存器间接寻址方式寄存器间接寻址方式 寄存器相对寻址方式寄存器相对寻址方式 基址变址寻址方式基址变址寻址方式 相对基址变址寻址方式相对基址变址寻址方式存储器寻址 指令中给出操作数的主存地址信息(偏移地39存储器寻址存储器寻址1.直接寻址方式直接寻址方式 有效地址在指令中直接给出,默认的段地址在有效地址在指令中直接给出,默认的段地址在DS段寄存器,段寄存器,可使用段超越前缀改变。可使用段超越前缀改变。MOV AX,2000H ;AXDS:2000H ;指令代码:;指令代码:A10020MOV AX,ES:2000H ;AXES:2000H ;指令代码:;指令代码:26A10020存储器寻址1.直接寻址方式 有效地址在指令中40存储器寻址存储器寻址2.寄存器间接寻址方式寄存器间接寻址方式 有效地址存放在基址寄存器有效地址存放在基址寄存器BX,或变址寄存器或变址寄存器SI、DI,或基址指针,或基址指针BP中。中。MOV AX,BX ;AXDS:BXMOV AX,ES:DI ;AXES:SI 段地址对应段地址对应BX/SI/DI寄存器默认是寄存器默认是DS,对应,对应BP寄存器寄存器默认是默认是SS;可用段超越前缀改变。;可用段超越前缀改变。存储器寻址2.寄存器间接寻址方式 有效地址存放41存储器寻址存储器寻址3.寄存器相对寻址方式寄存器相对寻址方式 有效地址是寄存器内容与有符号有效地址是寄存器内容与有符号8位或位或16位位移量之和,位位移量之和,寄存器可以是寄存器可以是BX、BP或或SI、DI。有效地址有效地址BX/BP/SI/DI8/16位位移量位位移量MOV AX,DI+06H;AXDS:DI+06HMOV AX,BP+06H;AXSS:BP+06H 段地址对应段地址对应BX/SI/DI寄存器默认是寄存器默认是DS,对应,对应BP寄存器寄存器默认是默认是SS;可用段超越前缀改变。;可用段超越前缀改变。存储器寻址3.寄存器相对寻址方式 有效地址是42存储器寻址存储器寻址4.基址变址寻址方式基址变址寻址方式 有效地址由基址寄存器(有效地址由基址寄存器(BX或或BP)的内容加上变址寄)的内容加上变址寄存器(存器(SI或或DI)的内容构成:)的内容构成:有效地址有效地址BX/BPSI/DIMOV AX,BX+SI ;AXDS:BX+SIMOV AX,BP+DI ;AXSS:BP+DIMOV AX,DS:BP+DI;AXDS:BP+DI 段地址对应段地址对应BX基址寄存器默认是基址寄存器默认是DS,对应,对应BP基址寄基址寄存器默认是存器默认是SS;可用段超越前缀改变。;可用段超越前缀改变。存储器寻址4.基址变址寻址方式 有效地址由基址43存储器寻址存储器寻址5.基址变址且相对寻址方式基址变址且相对寻址方式 有效地址是基址寄存器(有效地址是基址寄存器(BX/BP)、变址寄存器()、变址寄存器(SI/DI)与一个与一个8位或位或16位位移量之和:位位移量之和:有效地址有效地址BX/BPSI/DI8/16位位移量位位移量MOV AX,BX+SI+06H;AXDS:BX+SI+06HMOV AX,BP+SI+06H;AXSS:BP+SI+06H 段地址对应段地址对应BX基址寄存器默认是基址寄存器默认是DS,对应,对应BP基址寄存器基址寄存器默认是默认是SS;可用段超越前缀改变。;可用段超越前缀改变。存储器寻址5.基址变址且相对寻址方式 有效地44存储器寻址存储器寻址注意:注意:(1)位移量可用符号表示)位移量可用符号表示 (2)同一寻址方式有多种表达方式)同一寻址方式有多种表达方式 在寄存器相对寻址或相对基址变址寻址方式中,位移量可在寄存器相对寻址或相对基址变址寻址方式中,位移量可用符号表示:用符号表示:MOV AX,SI+COUNT;COUNT是已定义的变量或常量是已定义的变量或常量 MOV AX,BX+SI+WNUM;WNUM也是变量或常量也是变量或常量 同一寻址方式有时可以写成不同的形式:同一寻址方式有时可以写成不同的形式:MOV AX,BXSI ;MOV AX,BX+SI MOV AX,COUNTSI ;MOV AX,SI+COUNT MOV AX,WNUMBXSI ;MOV AX,WNUMBX+SI ;MOV AX,BX+SI+WNUM存储器寻址注意:(1)位移量可用符号表示 在寄存453.7 高档高档CPU的寄存器和存储器的寄存器和存储器3.7.1 高档高档CPU的寄存器结构的寄存器结构与与8086的区别:的区别:(1)8个通用寄存器的长度扩展为个通用寄存器的长度扩展为32位:位:EAX、EBX、ECX、EDX、ESI、EDI、EBP和和ESP。(2)EIP存放下一条要执行指令的偏移地址。其低存放下一条要执行指令的偏移地址。其低16位称为位称为IP,用于偏移地址为,用于偏移地址为16位的位的实模式实模式情况。情况。(3)标志寄存器扩展为)标志寄存器扩展为32位位EFLAGS,增加了高档,增加了高档CPU特有的特有的状态标志和控制标志。状态标志和控制标志。(4)增加了)增加了16位的段寄存器位的段寄存器FS和和GS。3.7 高档CPU的寄存器和存储器3.7.1 高档CP463.7 高档高档CPU的寄存器和存储器的寄存器和存储器3.7.2 高档高档CPU的存储器访问机制的存储器访问机制 奔腾奔腾CPU可访问存储器空间为可访问存储器空间为4GB。采用虚拟存储技术,可。采用虚拟存储技术,可大大扩展存储空间。大大扩展存储空间。实模式实模式即即8086模式,模式,CPU只能访问地址低端的只能访问地址低端的1MB存储器存储器空间,这部分存储区成为实模式存储器、常规内存或空间,这部分存储区成为实模式存储器、常规内存或DOS存储存储器系统。器系统。DOS工作于实模式,工作于实模式,WINDOWS工作于保护模式。工作于保护模式。一、实模式与保护模式一、实模式与保护模式 保护模式保护模式,CPU可访问低端可访问低端1MB存储区和高于存储区和高于1MB以上的以上的存储区。存储区。3.7 高档CPU的寄存器和存储器3.7.2 高档CP473.7 高档高档CPU的寄存器和存储器的寄存器和存储器3.7.2 高档高档CPU的存储器访问机制的存储器访问机制1.基本概念基本概念二、保护模式下的存储器寻址机制二、保护模式下的存储器寻址机制 (2)描述符表:)描述符表:存储描述符的特殊用途的段。有三种:存储描述符的特殊用途的段。有三种:1个个GDT、多个、多个LDT和和1个个IDT。每个表最多存放。每个表最多存放213个描述符,每个个描述符,每个描述符描述符8字节,每个表占用字节,每个表占用64KB。每个描述符分配一个每个描述符分配一个13位的位的描述符索引号描述符索引号,索引号乘以,索引号乘以8得得到这个描述符在描述符表中的起始地址。到这个描述符在描述符表中的起始地址。(1)段描述符:)段描述符:对段进行说明的、固定格式的、连续对段进行说明的、固定格式的、连续8个字节个字节信息。包括信息。包括32位的位的段地址段地址(段基地址),(段基地址),20位的位的段界限段界限和和12位位的的属性位属性位(标志位和控制位)。(标志位和控制位)。3.7 高档CPU的寄存器和存储器3.7.2 高档CP483.7 高档高档CPU的寄存器和存储器的寄存器和存储器3.7.2 高档高档CPU的存储器访问机制的存储器访问机制1.基本概念基本概念二、保护模式下的存储器寻址机制二、保护模式下的存储器寻址机制 (3)段寄存器、选择符和描述符寄存器)段寄存器、选择符和描述符寄存器 每个每个16位段寄存器(共位段寄存器(共6个)对应一个个)对应一个64位的描述符寄存器。位的描述符寄存器。段寄存器由程序置入段选择符,段寄存器由程序置入段选择符,16位的段选择符中的位的段选择符中的13位是位是描述符索引号。描述符索引号。一旦程序向某个段寄存器置入段选择符,将自动地把描述符一旦程序向某个段寄存器置入段选择符,将自动地把描述符表中的表中的64位描述符传入对应的描述符寄存器。位描述符传入对应的描述符寄存器。存有描述附表的特殊用途的段,它的描述符存于描述符表寄存有描述附表的特殊用途的段,它的描述符存于描述符表寄存器(存器(GDTR、LDTR和和IDTR)。)。3.7 高档CPU的寄存器和存储器3.7.2 高档CP49精品课件精品课件!精品课件!50精品课件精品课件!精品课件!513.7 高档高档CPU的寄存器和存储器的寄存器和存储器3.7.2 高档高档CPU的存储器访问机制的存储器访问机制 (1)保护模式下访问存储器的地址仍有)保护模式下访问存储器的地址仍有段基地址段基地址(32位)位)和和偏移地址偏移地址(20位)两部分组成。位)两部分组成。二、保护模式下的存储器寻址机制二、保护模式下的存储器寻址机制 (2)段基地址的获取:)段基地址的获取:首先,首先,经段寄存器中的选择符中的经段寄存器中的选择符中的索引号,指明存储于段描述符表中的描述符,索引号,指明存储于段描述符表中的描述符,然后,然后,将由这个将由这个描述符提供段地址。描述符提供段地址。(3)保护模式下可寻址的存储器空间可无限大,通过虚拟)保护模式下可寻址的存储器空间可无限大,通过虚拟存储器实现。存储器实现。2.寻址机制寻址机制3.7 高档CPU的寄存器和存储器3.7.2 高档CP52
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!