版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、参考书 微机原理、汇编与接口技术(第二版)清华大学出版社出版 微机原理、汇编与接口技术学习指导(第二版) 清华大学出版社出版 微型计算机技术及应用(第4版)清华大学出版社 戴梅萼 史嘉权 微机原理与接口技术(基于32位机)电子工业出版社 马春燕主编 汇编语言与接口技术(第2版)清华大学出版社 王让定等4人编 微型计算机原理与接口技术 清华大学出版社 孙力娟等5人编 微型计算机原理与接口技术(第3版)清华大学出版社 冯博琴 吴宁编 微型计算机原理、接口技术及其应用(第2版)清华大学出版社 史新福 冯萍编 微机原理与汇编语言(第2版)电子工业出版社 王鈺等3人编 32位微型计算机与接口技术 清华大
2、学出版社 朱永华等编,2007. 6. 13,微机原理、汇编与接口技术,1.1,1.2,1.3,1.4,计算机的数和编码,微型计算机的结构和工作原理,80 x86微处理器,第1章 微型计算机基础,1.5,80 x86的寄存器,80 x86的工作方式与存储器物理地址的生成,1.1.1 计算机中的数制,常用数制-二,十,十六进制,为了区别3种不同数制,约定,目前在计算机中,数几乎全部用二进制表示 为书写方便,微机中的二进制数用十六进制数缩写 人们最熟悉、最常用的是十进制数,数后加B表示二进制数 数后加D或不加表示十进制数 数后加H表示十六进制数,十进制、二进制、十六进制数之间的关系表,数制间转换,
3、如: 1111111000111B 1 1111 1100 0111B 0001 1111 1100 0111B = 1FC7H,1.二十六,如: 3AB9H = 0011 1010 1011 1001B,数制间转换,2.十六十,如: 38947=9823H,如: 1F3DH=163116215161316013 =4096125615163113 =409638404813=7997,16 38947 3 16 2434 2 16 152 8 16 9 9 0,余数倒序排列,数制间转换,3.二十 十进制数二进制数:十进制数十六进制数二进制数 二进制数十进制数:二进制数十六进制数十进制数 使用
4、2n的二进制数(等于1后跟n个0)和十六进制数、十进制数的对应关系(如下表所示)以及个别十进制整数和十六进制数的对应关系(如50=32H,80=64H,100=64H等) 转换,如: 38947=32768+4096+2048+32+3 =8000H+1000H+800H+20H+3H=9823H 1F3DH=2000H-(80H+40H+3H) =8192-(12864+3)=7997,3种数制的对应关系,方法:利用2n和十六进制数、十进制数的对应关系,实现数制转换。,算式114096+7512+664+58+3的结果以二进制数表示时含有多少个1?,解:114096+7512+664+58+
5、3 换算为二进制得: 10111000000000000+0111 1000000000+ 01101000+00110011 以二进制数便是含有2个1。,1.1.2 符号数的表示方法,用数的符号和数值部分一起编码的方法表示符号数 二进制数的最高位是符号位。正数的最高位为0,负数的最高位为 1 区分:机器数、真值、无符号数 符号数常用的表示法:补码,原码,反码,正数的补码,符号位为0,数值部分为其绝对值;负数的补码为与其绝对值相等的正数的补数,补数有两种求法: 从最低位向最高位扫描,保留直至第一个“1”的所有“0”,第一个“1”左边各位按位取反 如:X1= 105=+1101001B X1补=
6、01101001B X2=-105=-1101001B X2补=10010111B 按位取反后再加1 对补码表示的负数求补可以得到其绝对值 如 -105补=10010111B=97H 求补,得:01101001=69H=105,即补码表示的机器数97H的真值是-69H(-105)。,(1)补码,注: 一个补码数,若最高位为0,则该数即为此数的绝对值;若最高位为1,则其补数为该数的绝对值 8位补码数的范围:80H7FH(-128127).16位补码数的范围:8000H7FFFH(-3276832767) 补码数80H和8000H的最高位既代表了符号为负又代表了数值为1 1个二进制补码数的符号位向
7、左扩展若干位后,所得到的补码数的真值不变 如:68补=44H字节, 68补=0044H字 -68补= BCH 字节, -68补= FFBCH字 微机中,符号数用补码表示!,如: X1= 105=+1101001B X1原=01101001B X2=-105=-1101001B X2原=11101001B,(2)原码,注: 原码表示的数,8位数中,D7位为符号位,其余7位为数值位(为真值的绝对值) 8位原码数的数值范围为FFH7FH(-127127);16位原码数的数值范围为FFFFH7FFFH(-3276732767) 原码表示简单易懂,且与真值转换方便,但内部运算复杂,为简化计算机结构,引进
8、了反码和补码,注: 一个负数的反码的数值部分并不是其真值的绝对值,要按位取反才能求得真值的绝对值,如: X1= 105=+1101001B X1反=01101001B X2=-105=-1101001B X2反=10010110B,(3)反码,1.1.3 二进制数的加减运算,二进制加法规则:,二进制减法规则:,0+0=0 0+1=1+0=1 1+1=0 进位1,0-0=0 1-0=1 1-1=0 0-1=1 借位1,计算机把机器数均当作无符号数进行运算,即符号位也参与运算,如: 59+164=3BH + 0A4H 127160=7FHA0H =0DFH =11FH=287 无进位,CF=0 有
9、进位,CF=1,(1)无符号数的运算,192-10=C0H-0AH =B6H =182 无借位,CF=0,10-192=0AH-C0H =-B6H=-182 有借位,CF=1,结论:对无符号数进行减法运算,其结果的符号用进位来判别:CF=0(无借位)结果为正;CF=1(有借位)结果为负,如:,2 )两个无符号数相减-被减数大于或等于减数,无借位,结果为正;被减数小于减数,有借位,结果为负。,(2)符号数的运算,如:105+50 = 155 127,超出范围,产生溢出 又如:-105-50 = -155 -128 ,超出范围,产生溢出,=-155 将进位视为符号,结果正确,=65H结果为正,错误
10、,溢出,0F=1,说明: 将多位二进制数拆成多部分运算时,数的低位部分均为无符号数,只有高位部分才为符号数 注意区分进位与溢出 溢出不同于补码运算中的进位或借位丢失 如: -50-5 = -55,判断补码运算有无溢出的方法:,设符号位向进位位的进位为CY,数值部分向符号位的进位为CS,则溢出判别式为: OF=CY CS 当OF=1时,有溢出;当OF=0时,无溢出,1.1.4 二进制数的逻辑运算,(1)逻辑非按位求反,(2)逻辑乘(逻辑与)按位求“与”,如:A=01100001B,B=11001011B A=10011110B,B=00110100B,规则:=0,=0,10=0,11=1 如:0
11、1100001B11001011B=0100 0001B,(3)逻辑加(逻辑或)按位求“或”,(4)逻辑异或(按位加)按位求模和,规则:00=0,01=1,10=1,11=1 如:01100001B11001011B=11101011B,规则:0+0=0,0+1=1,1+0=1,1+1=0 如:01100001B 11001011B=10101010B,(5)正逻辑与负逻辑,正逻辑高电平表示逻辑,低电平表示逻辑0 负逻辑高电平表示逻辑 0,低电平表示逻辑1,1.1.5 二进制编码,即用二进制表示的十进制数,简称BCD数 (binary coded decimal),常用的是8421 BCD码,
12、计算机里,字母、各种符号以及指挥计算机执行操作的指令,均用二进制数的组合表示,称为二进制编码,8421 BCD编码表,压缩BCD数用8位二进制数表示2个十进制数位 非压缩BCD数用8位二进制数表示1个十进制数位 如:19 压缩BCD 0001 1001 = 19H 19 非压缩BCD 00000001 00001001 = 0109H,说明: 十进制数与BCD数的转换 查8421 BCD编码表直接 BCD数转换为二进制数 写出BCD数的十进制数十进制数转换为二进制数 二进制数转换为BCD数 二进制数转换为十进制数根据十进制数写出BCD数,(2)ASCII码 -字符在机内的表示, ASCII 字
13、符表(7位码)见下页。常用的ASCII码字符如下表(P9表1-5):,H,L,NUL 空 SOH 标题开始 STX 正文结束 ETX 本文结束 EOT 传输结束 ENQ 询问 ACK 承认 BEL 报警符 BS 退格 HT 横向列表 LF 换行 VT 垂直制表 FF 走纸控制 CR 回车 SO 移位输出 SI 移位输入,DLE 数据链换码 DC1 设文字备控制1 DC2 设备控制2 DC3 设备控制3 DC4 设备控制4 NAK 否定 SYN 空转同步 ETB 信息组传送结束 CAN 作废 EM 纸尽 SUB 减 ESC 换码 FS 分隔符 GS 组分隔符 RS 记录分隔符 US 单元分隔符
14、SP 空格 DEL 作废,注: (1)十进制数的ASCII码转换成BCD数 减30H BCD数转换成十进制数的ASCII码 加30H (2)将十六进制数的ASCII码转换为十六进制或将十六进制转换为十六进制数的ASCII码,要先判别ASCII码是在哪个区段内,然后再加或减30H或37H。 (3)十进制数的ASCII码转换为二进制数: 将ASCII码转换为ASCII BCD数写出ASCII BCD数的十进制数将十进制数转换为二进制数 (4)二进制数转换为十进制数的ASCII码 过程与(3)相反,1.1.6 BCD数的加减运算,如:48+59=107,BCD数低位与高位之间逢“10”进1,4位二进
15、制数之间逢“16”进1。而计算机按二进制规律运算,故BCD数进行运算后须进行调整 (1)BCD数加法,如:28-19=9,通常在微机中设有二十进制调整电路,通过调用调整指令来实现调整,(2)BCD数减法,1.2,1.1,1.3,1.4,计算机的数和编码,微型计算机的结构和工作原理,80 x86微处理器,第1章 微型计算机基础,1.5,80 x86的寄存器,80 x86的工作方式与存储器物理地址的生成,位(bit)计算机所能表示的最基本、最小的数据单元。1个二进制位有两种状态“0”和“1” 字(word) 计算机内部进行数据处理的基本单位,与寄存器、ALU宽度一致每一个字所包含的二进制位数称为字
16、长 字节(byte) 8个Bit组成一个字节,存放相邻的8位二制数.字节的长度固定 指令(instruction) 程序(program) 指令系统(instruction set),1.2.1 微型计算机常用的术语,1.2.2 微型计算机的基本结构,微型计算机的基本组成如图所示:,微机的核心部件,具有运算和控制功能,组成: 算术逻辑单元ALU(arithmetic logic unit) 寄存器(register)组 控制器(control unit),1.CPU,总线是把计算机各部分有机地连接起来的一组并行导线,是各个部分之间进行信息交换的公共通道,微机的三总线: 数据总线DB 在CPU与
17、存储器和CPU与I/O接口之间双向传送数据.其条数决定了每一次能同时传送的二进制数的位数。如:8088的数据总线为8条,一次能够传送8位二进制数,用D7D0表示,2.总线,地址总线AB 传送CPU发出的地址,以寻址存储单元或I/O端口。AB的宽度决定了计算机系统能够使用的最大的存储器容量。如:地址总线为20条,用A19A0表示,可寻址220=1M的存储空间 控制总线CB 向计算机系统的各部件发送操作命令和定时信息。带有上横线的表示低电平有效,无上横线的表示高电平有效 如:ALE(address latch enable)、INTR高电平有效,MEMW、MEMR、IOR、IOW、INTA低电平有
18、效,3.存储器(memory),(1) 存储器单元的地址和内容,(2) 存储器的分类 存储器分为内部存储器和外部存储器两大类,分别简称为内存和外存,外存也叫辅存,内存也叫主存。程序和数据以文件的形式保存在外存中,要执行的程序和要使用的数据必须事先调入内存。为了加快CPU访问内存的速度,从而提高程序的运行速度,在内存和CPU之间或者CPU内部增加了存取速度较高的高速缓冲存储器,即cache。为了扩充内存容量,还将外存作为内存的辅助,给用户提供比内存大得多的逻辑存储容量,这就是所谓的“虚拟存储器”。,虚拟存储器 人们通常所指的内存是由“内存条”组成的物理存储器,物理存储器是由地址总线直接访问的存储
19、空间,其地址称为物理地址。显然,地址总线的条数决定了物理存储器即内存的最大容量。,虚拟存储器 虚拟存储器是相对物理存储器而言的,虚拟存储器是指程序使用的逻辑存储空间,它可以比物理存储空间大得多。虚拟存储器由内存、辅存和管理部件共同组建。通过管理软件达到内存和辅存密切配合,使整个存储系统的速度接近内存、容量接近辅存。当应用程序访问虚拟存储器时,必须给出虚拟地址即逻辑地址,在此过程中,先通过硬件和软件找出逻辑地址到物理地址之间的对应关系,判断要访问的是否已装入内存,如已装入则直接访问内存,否则,相应的硬件和管理软件会将要访问的有关数据块从辅存调入内存,与此同时将内存中原有的暂时不使用的某数据块调回
20、辅存,并且将虚拟地址转变为物理地址。,高速缓冲存储器 高速缓冲存储器即高速缓存Cache是使用速度与CPU相当的静态随机读/写存储器芯片组成的小容量存储器,用来存放微处理器最近要用的指令和数据。 Cache中的内容其实是内存中一小部分内容的复制品,内存中经常被微处理器使用到的一部分内容要烤页到Cache中,并不断地更新Cache中的内容,使得Cache中总是保存有最近经常被微处理器使用的一部分内容。,高速缓冲存储器 Cache中存放的内容除了内存中的指令和数据外,还要存放这些指令和数据在内存中的对应地址。当微处理器存取指令和数据时,Cache截取微处理器送出的地址,并判别这个地址与Cache中
21、保存的地址是否相同。若相同,则从Cache中存取该地址中的指令或数据;否则就从内存中存取。,(3) 存储器的操作 CPU对存储器的操作有读和写两种,读操作是CPU将存储单元的信息取到CPU内部,而写操作是CPU将其内部的信息传送到存储单元保存。写操作要改变被写存储单元的内容,而读操作则不改变被读存储单元的内容。向存储单元存放或取出信息,都称为访问存储器。访问存储器时,先由地址译码器将送来的单元地址进行译码,找到相应的存储单元;再由读写控制电路,根据送来的读或写命令确定访问存储器的方式,完成读出(读)或写入(写)操作。,4.总线插座和接口 外部设备通过总线插座和接口与计算机连接。设置接口的主要原
22、因 外设的工作速度远低于CPU的速度 外设表示信息的格式与计算机不同 接口向计算机报告设备的状态,传达计算机命令等,(5)I/O设备,输入设备:键盘、模数转换器、扫描仪等 输出设备:显示器、打印机、绘图机等 输入/输出设备:磁盘和光盘等,1.2.3 计算机的工作原理,CPU、存储器、I/O接口、外部设备构成了计算机的硬件(hardware),光有这样的硬件还只是具有了计算的可能。计算机要真正能够进行计算还必须有多种程序的配合 当人们要解决问题时,首先将问题程序化,形成指令序列,然后将它存入存储器中,再由CPU的控制器和ALU依据程序中指令的顺序周而复始地取出指令,分析指令,执行指令,最后输出程
23、序结果.即“程序存储和程序控制”,1.2,1.1,1.4,计算机的数和编码,微型计算机的结构和工作原理,80 x86微处理器,第1章 微型计算机基础,1.5,80 x86的寄存器,80 x86的工作方式与存储器物理地址的生成,1.3,1.3.1 8086/8088,8086/8088的内部结构,(1)执行单元EU(execution unit),(2)总线接口单元BIU(bus interface unit),EU负责执行指令,完成两种操作:算术逻辑运算、计算存储器操作数的偏移地址,BIU完成所有的总线操作 EU和BIU并行工作,可以同时进行读/写操作和执行指令的操作,1.3.1 8086/8
24、088,1.3.2 80286,内部和外部数据总线都是16位,地址总线为24位,可寻址224字节即16MB内存,支持虚拟存储器管理技术,虚拟存储空间可达1GB(230)。 微处理器的组成: 地址单元AU(Address Unit) 总线单元BU(Bus Unit) 指令单元IU(Instruction Unit) 执行单元EU AU中的存储器管理机构使用段式管理方式,首次实现了虚拟存储器管理,1.3.3 80386,内部和外部数据总线都是32位的,地址总线为32位,可寻址4GB,虚拟存储空间可达64TB(246) 微处理器的组成: 总线接口单元BIU 指令译码单元IDU(Instruction
25、 Decode Unit) 指令预取单元IPU(Instruction Prefetch Unit) 执行单元EU 分段单元SU(Segmentation Unit) 分页单元PU(Paging Unit),1.3.4 80486,内部数据总线为64位,外部数据总线为32位,地址总线为32位) 微处理器的组成: 总线接口单元、指令译码单元 指令预取单元、执行单元 分段单元 分页单元以及浮点处理单元(FPU) 高速缓存(Cache memory),1. Pentium微处理器的内部结构,1.3.5 Pentium,(1)总线接口单元 总线接口单元实现微处理器与微型计算机系统总线的连接,其中包括6
26、4位数据线、32位地址线和众多的信号线,以此实现微处理器与外部的信息交换。Pentium微处理器与外部交换数据可以是64位还可以是32位、16位或者8位。,1.3.5 Pentium,(2)分段单元和分页单元 分段单元将程序提供的逻辑地址转换为线性地址,分页单元将线性地址转换为物理地址。 分页是将段分为多个固定大小的页面(通常为4KB),分页支持虚拟存储器环境。内存中只保留程序访问的页面,而众多的页面被存储在磁盘中。当程序要访问线性地址空间中的某个地址时,分页单元先将线性地址转换为存储器的物理地址,然后执行对该地址的读操作或写操作。如果所访问的页面不在物理内存中,微处理器就会暂时中断该程序的执
27、行,由操作系统将所需的页面从磁盘读入物理内存中,然后接着执行被中断的程序。,1.3.5 Pentium,(3)U流水线和V流水线 Pentium采用两条流水线,这两条流水线都拥有自己的算术逻辑单元ALU、地址生成电路和数据Cache的接口。这种双流水线结构允许Pentium可以一次执行两条指令,每条流水线中执行一条。 (4)指令Cache和数据Cache 在Pentium中,指令Cache和数据Cache两者分开,从而减少了指令预取和数据存取操作之间可能发生的冲突,并可提高命中率。Pentium的数据Cache有两个接口,分别与U和V两条流水线相连,以便同时和两条流水线交换数据。,1.3.5
28、Pentium,(5)指令预取单元、指令译码单元和控制ROM 指令预取单元从指令Cache中预先取指令,每次取两条指令。如果是简单指令,通过指令译码单元译码后,将两条指令分别送到U流水线和V流水线执行。如果是复杂指令,通过控制ROM将其转换成对应的一系列微指令,再送到U流水线和V流水线执行。复杂指令对应的微指令存放在控制ROM中。微指令是微处理器能够直接执行的指令,它的长度是固定的,因此很容易在流水线中进行处理。,1.3.5 Pentium,(6)控制单元 控制单元的功能是通过对来自指令译码单元和和控制ROM中微程序的解析,控制U流水线、V流水线和浮点处理单元的正常运行。 (7)分支转移目标缓
29、冲器 分支转移目标缓冲器在遇到分支转移指令时用来预测转移是否发生,并据此为分支指令处的指令提供预取地址。 (8)浮点处理单元 浮点处理单元主要用于浮点运算,使得浮点运算的速度得到提高。,1.3.5 Pentium,1.3.5 Pentium,2.Pentium微处理器的先进技术 (1)超标量流水线 (2)分支转移的动态预测 (3)独立的指令Cache和数据Cache (4)重新设计的浮点单元,1.2,1.1,计算机的数和编码,微型计算机的结构和工作原理,80 x86微处理器,第1章 微型计算机基础,1.5,80 x86的寄存器,80 x86的工作方式与存储器物理地址的生成,1.4,1.3,1.
30、4.1 8086/8088 的寄存器,通用寄存器共8个:AX,BX,CX,DX,SP,BP,SI,DI,均为16位,在EU部件中 AX,BX,CX,DX均可分成高8位和低8位,作为独立的8位寄存器使用:AH,AL,BH,BL,CH,CL,DH,DL AX累加器,BX基址寄存器 CX计数寄存器,DX数据寄存器 SP堆栈指示器,BP基址指示器 SI源变址寄存器,DI目的变址寄存器,1.通用寄存器,IP 硬件电路,能自动跟踪指令地址。 在开始执行程序时,赋给IP第一条指令的地址,然后每取一条指令,IP的值就自动指向下一条指令的地址,2.指令指示器IP(instruction point),9个标志位
31、,其中6个状态标志,3个控制标志,3.状态标志寄存器(status flags),进位标志位CF 加减运算执行后,最高位有进位或借位,CF=1;无进位或借位,CF=0 主要用于多字节加减运算 辅助进位标志位AF 最低4位D3D0位有进位或借位,AF=1;无进位或借位,AF=0 用于BCD数的算术运算(调整)指令,(1)状态标志,反映EU执行算术或逻辑运算后的结果,3.状态标志寄存器(status flags),溢出标志位OF 运算结果超出了机器数所能表示的数的范围OF=1;反之,OF=0 该标志表示运算结果是否产生了溢出 符号标志位SF 结果为负数,SF=1;结果为正数,SF=0 零标志位 结
32、果为0,ZF=1;结果不为0,ZF=0 奇偶标志位PF 结果低八位中1的个数为偶数,PF=1;为奇数,PF=0。用于检查数据在传送过程中是否发生错误,3.状态标志寄存器(status flags),方向标志位DF 控制数据串操作指令的步进方向 DF=1,地址增址;DF=0,地址减址 中断允许标志位IF 控制CPU是否开中断. IF=1, CPU开中断 IF=0, CPU关中断 追踪标志位TF(陷阱标志位) TF=1,CPU单步执行程序,常用于程序的调试 TF=0,CPU正常执行程序,(2)控制标志,用于控制CPU的操作。,3.状态标志寄存器(status flags),实地址方式使用20条地址
33、线,存储器的物理地址必须用20位二进制数表示。ALU只能处理16位的地址运算,与地址有关的寄存器都只有16位。因此在实地址方式下把20位的存储器地址分成若干个段来表示。段寄存器就是用来存放段的起始地址的高16位地址的寄存器。段内再由16位二进制数来寻址,段内寻址的16位二进制数地址是段起始地址到存储单元的距离,称为段内偏移地址。 存储单元的地址由段基址的高16位或段寄存器和偏移地址两部分组成,用冒号连接段基址的高16位或段寄存器和偏移地址,像这样表示的地址称为逻辑地址。 段基址的高16位:偏移地址 或 段寄存器:偏移地址,4.段寄存器,CS-存放代码段的段基址的高16位 SS-存放堆栈段的段基
34、址的高16位 DS-存放数据段的段基址的高16位 ES-存放附加数据段的段基址的高16位,1.4.2 80286的 寄存器,在8086的基础上新增: 16位的机器状态字寄存器MSW:只定义了低4位 标志寄存器EFLAGS增加两个标志位: 任务嵌套标志位NT(nested task )和I/O特权级标志位IOPL(I/O privilege level field)分别位于D14、 D13和D12 3位,1.4.3 80386的 寄存器,1.基本寄存器,(1)通用寄存器,EAX,EBX,ECX,EDX,ESP,EBP,ESI,EDI,均为32位 低16位AX、BX、CX、DX、SP、BP、SI、
35、DI,用法与8086完全相同,1.4.3 80386的 寄存器,(2)指令指示器EIP和标志寄存器EFLAGS,均为32位,它们的低16位即是8086的IP和FLAGS,并可单独使用 工作于保护方式下时,EIP是32位的寄存器;工作于实地址方式下时,EIP就是16位的寄存器IP 保留了80286的所有标志,并在高位字的最低两位D17和D16增加了虚拟8086方式标志VM和恢复标志RF,1.基本寄存器,1.4.3 80386的 寄存器,(3)段寄存器,6个段寄存器:CS,SS,DS,ES,FS,GS,均为16位FS、GS的作用与ES相同 段基址与段寄存器的关系由微处理器80386的工作方式确定,
36、1.基本寄存器,1.4.3 80386的 寄存器,2.系统寄存器,(1)系统地址寄存器,全局描述符表寄存器GDTR 中断描述符表寄存器IDTR 局部描述符表寄存器LDTR 任务寄存器TR 主要用来在保护模式下管理用于生成线性地址和物理地址的个系统表,1.4.3 80386的 寄存器,(2)控制寄存器 控制寄存器有个:CR0CR3,CR1为备用。主要用来进行分页处理。 (3)调试寄存器 DR0DR7,主要用来设置程序的断点 (4)测试寄存器 TR6和TR7,用来进行页处理,2.系统寄存器,1.4.4 80486的 寄存器,新增加3个测试寄存器TR3TR5用于片内Cache测试以及浮点处理单元的浮
37、点寄存器 80486除了保留80386的所有标志外,在D18位增加了对准检查标志AC(alignment check),1.4.5 Pentium的 寄存器,1.基本寄存器,(1)通用寄存器,EAX,EBX,ECX,EDX,ESP,EBP,ESI,EDI,32位 AX、BX、CX、DX、SP、BP、SI、DI, 16位 AH、AL、BH、BL、CH、CL、DH、DL, 位,1.4.5 Pentium的 寄存器,1.基本寄存器,(2)指令指示器EIP,EIP是32位的寄存器,它用来存放下一条要执行指令的偏移地址 低16位即是8086的指令指示器IP,可单独使用 微处理器工作于保护方式下时,EIP
38、是32位的寄存器;工作于实地址方式下时,EIP就是16位的指令指示器IP。,1.4.5 Pentium的 寄存器,(3)标志寄存器EFLAGS,1.4.5 Pentium的 寄存器,(4)段寄存器,6个16位段寄存器:CS、SS、DS、ES、FS、GS。 在实地址方式,段寄存器用来存放段的起始地址的高16位地址;CS代码段、SS堆栈段、DS数据段,ES、FS和GS附加数据段。 在虚地址保护方式,段寄存器中存放的是选择字,选择字如下图所示。CS 、SS、DS中的描述符索引分别指向当前代码段、堆栈段和数据段对应的段描述符,ES、FS和GS中的描述符索引指向当前3个附加数据段对应的段描述符,由此可以
39、找到当前各个段的段基址。,1.4.5 Pentium的 寄存器,2.系统寄存器,(1)系统地址寄存器,GDTR:48位,其中高32位是全局描述符表GDT的线性基地址,低16位是GDT的界限 IDTR:48位,其中高32位是中断描述符表IDT的线性基地址,低16位是IDT的界限 LDTR:16位,用来存放描述符索引,据此可在全局描述符表GDT中检索到局部描述符表LDT对应的描述符 TR:16位,用来存放描述符索引,据此可在全局描述符表GDT中检索到任务状态段TSS对应的描述符,1.4.5 Pentium的 寄存器,(2)控制寄存器,CR0:用来保存系统的标志, CR0的低位字是机器状态字MSW(
40、machine status word),1.4.5 Pentium的 寄存器,CR2和CR3:是两个用于存储器管理的地址寄存器。在分页操作时,如果出现异常,CR2中则会保存异常处的32位线性地址。CR3的前20位保存着页目录表的基地址,CR3的D3位和D4位用来对外部Cache进行控制。 CR4:只用了最低7位,所用位的定义如下图所示。,1.4.5 Pentium的 寄存器,(3)调试寄存器,8个调试寄存器是DR0DR7主要用来设置程序的断点和程序调试 DR0DR3:保存4个断点的线性地址 DR4和DR5:Intel公司保留 DR6:调试状态寄存器,在调试过程中用来报告断点处的状况 DR7:
41、配合设置的断点控制寄存器,用来设置控制标志,控制断点的设置、设置条件、断点地址的有效范围以及是否进入异常中断等 (4) 测试寄存器 Pentium有18个测试寄存器,用寄存器号00H14H来表示, 其中有3个号未使用。每个测试寄存器有一个特定的测试功能。 Pentium有专用的读/写指令来访问这些测试寄存器。,1.4.5 Pentium的 寄存器,3.浮点寄存器,(1)数据寄存器 数据寄存器有8个,它们是R0R7。每个寄存器有80位,80位的浮点数中1位为符号位、15位为阶码、64位为尾数 (2)标记字寄存器 标记字寄存器是1个16位的寄存器,每2位为1个标记,共8个标记,分别指示8个数据寄存
42、器的状态。,1.4.5 Pentium的 寄存器,(3)状态寄存器 16位的寄存器,用来指示浮点处理单元的当前状态,1.4.5 Pentium的 寄存器,(4)控制字寄存器,1.4.5 Pentium的 寄存器,(5) 指令指示器和数据指示器 存放发生故障的指令地址及其操作数的存储地址,1.2,1.3,1.4,计算机的数和编码,微型计算机的结构和工作原理,80 x86微处理器,第1章 微型计算机基础,1.5,80 x86的寄存器,80 x86的工作方式与存储器物理地址的生成,1.5,1.1,80 x86的工作方式有4种: 实地址方式(real address mode) 虚地址保护方式 (pr
43、otected virtual address mode) 虚拟8086方式(virtual 8086 mode) 系统管理方式(system management mode) 8086/8088只有实地址方式1种工作方式 80286有实地址方式和虚地址保护方式2种工作方式 80386和80486有实地址、虚地址保护方式和虚拟8086方式种工作方式。 Pentium有实地址方式、虚地址保护方式、虚拟8086方式和系统管理方式4种。,1.5.1 80 x86的工作方式,1. 实地址方式 实地址方式是实在的1MB的物理地址空间的工作方式,实地址方式采用存储器地址分段的方法,使两个16位的地址实现了
44、对1MB地址空间寻址的20位的物理地址。在实地址方式下,操作数的默认长度为16位,可以运行8086的全部指令。80 x86除了虚地址保护方式指令外,其余指令都可以在实地址方式下运行。8086和80286微处理器允许4种存储器分段,段寄存器为CS、DS、SS和ES。80386以上微处理器允许6种存储器分段,段寄存器为CS、DS、SS、ES、FS和GS。,1.5.1 80 x86的工作方式,2. 虚地址保护方式 虚地址保护方式是支持虚拟存储器、支持多任务、支持特权级与特权保护的工作方式。在虚地址保护方式下,32位微处理器可访问的物理空间为4GB (232字节),由辅存和内存提供的虚拟空间可达64T
45、B(246字节)。该方式对如此之大的虚拟存储空间采取保护措施,使系统程序和用户的任务程序之间以及各任务程序之间互不干扰地运行。最主要的保护措施是特权级和特权保护。特权级(privilege level)分为4级,由2位二进制数组成,特权级编号为03,其中0级为最高特权级,3级为最低特权级。每个存储段都同一个特权级相联系,只有足够级别的程序才可以对相应的段进行访问。在程序运行的过程中,通过CPL、DPL和RPL三个特权级来实施特权级保护。,1.5.1 80 x86的工作方式,CPL(current privilege level)是当前特权级,它既是代码段寄存器CS的最低2两位的值,也是当前代码
46、段的DPL的值,用来表示当前正在运行的程序的特权级。 DPL(descriptor privilege level)是描述符特权级,每个段的段描述符中都有2位DPL来标明此段的特权级。只有当CPL等于或高于DPL时,当前任务才能访问描述符所确定的段中的数据。 RPL(requrstor privilege level)是请求特权级,它位于数据段寄存器的最低2位,用来防止特权级低的程序访问特权级较高的数据段。,1.5.1 80 x86的工作方式,3. 虚拟8086方式 虚拟8086方式是一种在32位虚地址保护方式下支持16位实地址方式应用程序运行的特殊工作方式。微处理器的工作过程与虚地址保护方式下的工作过程相同,但程序指定的逻辑地址又与8086实地址方式相同。在这种方式下操作系统可以建立多个8086虚拟机,每个虚拟机都认为自己是唯一运行的机器,安全地运行以实地址方式编写的16位应用程序。虚拟8086方式是具有最低特权级(特权级为3)的保护方式。当标志寄存器的VM位为1时,微处理器进入虚拟8086方式。,1.5.1 80 x86的工作方式,4. 系统管理方式 系统管理方式主要为系统管理而设置。该方式可使系统设计人员实现高级管理功能,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 储煤场项目可行性研究报告
- 2025重庆大学输变电装备技术全国重点实验室劳务派遣项目研究人员招聘备考题库(长期有效)及参考答案详解一套
- 2026新疆博尔塔拉州博乐市浙能新能源有限公司招聘备考题库及完整答案详解1套
- 2026年上海市莘庄中学第二批教师招聘备考题库及1套参考答案详解
- 2026云南玉溪市澄江市人力资源和社会保障局公益性岗位招聘1人备考题库及一套参考答案详解
- 2026四川蒙顶山茶马古道文化旅游发展有限公司招聘劳务派遣工作人员1人备考题库含答案详解
- 2026广东佛山顺德区杏坛中学招聘高中语文地理临聘教师2人备考题库及参考答案详解一套
- 2026安徽亳州市蒙城县就业见习人员招募备考题库及答案详解(新)
- 2025恒丰银行成都分行社会招聘备考题库及答案详解一套
- 2025辽宁鞍山台安县教育系统面向师范类院校应届毕业生校园招聘13人备考题库完整参考答案详解
- “党的二十届四中全会精神”专题题库及答案
- 2026届福建省宁德市三校高三上学期1月月考历史试题(含答案)
- 2026年冀教版初一地理上册期末真题试卷+解析及答案
- 2026年孝昌县供水有限公司公开招聘正式员工备考题库及答案详解参考
- 2025年文化产业版权保护与运营手册
- 四川省乐山市高中高三上学期第一次调查研究考试数学试题【含答案详解】
- 《创新创业基础》课件-项目1:创新创业基础认知
- 2026年初一寒假体育作业安排
- 物流行业运输司机安全驾驶与效率绩效评定表
- 2026北京市通州区事业单位公开招聘工作人员189人笔试重点基础提升(共500题)附带答案详解
- 2025~2026学年山东省菏泽市牡丹区第二十一初级中学八年级上学期期中历史试卷
评论
0/150
提交评论