1、第第2章章 80 x86计算机组织计算机组织2.1 2.1 80X8680X86微处理器微处理器2.22.2基于微处理器的计算机系统构成基于微处理器的计算机系统构成2.32.3中央处理机中央处理机2.42.4存储器存储器2.52.5外部设备外部设备2.1 80X86 计算机的基本结构微型计算机硬件系统结构主要是由三部分组成,它们是:中央处理器CPU、存储器、输入输出设备,如图1所示。图1 计算机的基本结构 2.1.12.1.1中央处理器中央处理器中央处理器又称为微处理器,内部由运算器、控制器和寄存器三部分组成。运算器也称为算术逻辑部件,是用来执行指令所要求的算术运算、逻辑运算和数据传送等操作。
2、控制器是控制执行步骤;从内存中取出指令,分析指令的操作码, 完成操作数的存取,发出相应的控制命令等。 2.1.2 2.1.2 总线结构总线结构总线负责传送地址、数据和控制信息,因此包括:数据总线DB(Data Bus)地址总线AB(Address Bus)控制总线CB(Control Bus) 三类总线的主要任务是负责CPU与内存、外存、外部设备交换信息。1. 数据总线DB 数据总线是用来传送数据的。CPU与内存、I/O设备之间通过数据总线传送数据,80 x86系列的数据总线有8位、16位、32位和64位。2.地址总线AB 地址总线是用来传送地址的。内存中的每个字节都对应着一个唯一的地址。地址
3、总线的位数与寻址空间有着直接的关系。例如:8086/8088地址总线20根,则可访问的地址为:220 =1,048,576 = 1M 则8086/8088最大可用的存储空间为1M字节。 3.控制总线CB 控制总线是传送控制信息的。 存储器是计算机的记忆部件,包括内存(主存)和外部存储器(辅助存储器), 存储器中存放的是指令和数据。存储器由若干存储单元构成,存储单元的最小单位是字节。将所有的存储单元按顺序编号,即每一个字节有一个唯一的编号,这些编号称为存储单元的地址(也称为物理地址)。 IBMPC机及其兼容机的存储器系统结构基本是相同的,存储器系统主要分为3个主要部分: 程序暂驻区(TPA)、系
4、统内存区、扩展存储区(XMS) 2.1.3 2.1.3 存储器存储器在微机系统中最常用的外部设备有:键盘显示器打印机外部存储器等CPU与外部设备交换信息是通过I/O接口电路来完成的。2.1.4 2.1.4 外部设备外部设备外部设备外部设备与主机( CPU 和存储器)的通信是通过外设接口(Interface)进行的,每个接口包括一组寄存器。数据寄存器:存放外设和主机间传送的数据状态寄存器:保存外设或接口的状态信息命令寄存器:保存CPU发给外设或接口的控制命令,外设中每个寄存器有一个端口(Port)地址,构成一个独立于内存的 I / O 地址空间:0000H FFFFH寄存器分为3类: 通用寄存器
5、 、控制寄存器、段寄存器。如图80X86寄存器组2.2 80X86 CPU 2.2 80X86 CPU 的寄存器的寄存器 8086/8088微处理器8086/8088的主要特性:Intel 8086/8088采用高速运算性能的HMOS工艺制造,内含29000个晶体管,封装在标准的40引脚双列直插式塑封管壳内。采用两个+5V电源供电。数据总线: 8086:16位,8088:8位。地址总线:20位,其中8086的低16位与数据总线复用;8088的低8位与数据总线复用。内存空间:20位地址线可直接寻址1MB存储空间。寻址方式:7种基本的寻址方式,提供了灵活的操作数存取方法。 指令系统:100条基本指
6、令除能完成数据传送、算数运算、逻辑运算、控制转移和处理器控制功能外,内部还设有硬件乘除法与串处理指令电路,可以对位、字节、字节串、字串、压缩和非压缩型BCD码等多种数据类型进行处理。 时钟频率:8088: 4.7MHz; 8086: 5MHz; 8086-2:8MHz。 中断功能:可处理内部软件和外部硬件中断,中断源多达256个。工作模式:支持单处理器处理器、多处理器两种模式。8086/8088的编程结构所谓编程结构:从程序员和使用者的角度来看的结构。这种结构与CPU内部的物理结构和实际布局有区别,8088编程结构如下页图所示,从编程结构图中可以看到,8088分为两个部分:1、总线接口部件 B
7、IU(Bus Interface Unit)2、执行部件EU(Execution Unit)8086CPU的功能结构内部结构组成(1)执行单元(EU)(a)组成u16位算术逻辑单元位算术逻辑单元ALU;u16位状态标志寄存器位状态标志寄存器FLAG;u8个个16位通用寄存器组位通用寄存器组(AX,BX,CX,DX,SP,BP,SI,DI)u16位数据暂存器;位数据暂存器;uEU控制电路;控制电路;(b)功能从从BIU指令队列中读取指令;指令队列中读取指令;由由EU控制电路对指令进行译码分析,指出操控制电路对指令进行译码分析,指出操作性质及对象;作性质及对象;在在EU中计算出操作数的中计算出操作
8、数的16位地址偏移量送位地址偏移量送给给BIU,由,由BIU的的形成形成20位绝对地址;位绝对地址;将取来的操作数经系统数据总线送将取来的操作数经系统数据总线送ALU进行进行指定操作;指定操作;运算结果经内部总线送到指定位置运算结果经内部总线送到指定位置(a)部件4 4个个1616位段寄存器位段寄存器CS,DS,SS,ES;CS,DS,SS,ES;1616位指令偏移地址寄存器位指令偏移地址寄存器IP;IP;6 6个字节指令队列个字节指令队列ISQ;ISQ;形成形成2020位物理地址的加法器位物理地址的加法器;与与EUEU通讯的内部寄存器;通讯的内部寄存器;总线控制逻辑;总线控制逻辑;(2)总线
9、接口单元)总线接口单元(b)功能:实现实现CPUCPU与存储器或与存储器或I/OI/O口之间的数据传送。口之间的数据传送。根据根据CSCS和和IPIP取指令进入指令队列。取指令进入指令队列。由由EUEU从指令队列中取指令,并根据从指令队列中取指令,并根据EUEU请求请求BIUBIU将将2020位操作地址传送给存储器;位操作地址传送给存储器;取来操作数经总线控制逻辑传送到内部取来操作数经总线控制逻辑传送到内部EUEU数数据总线,由据总线,由EUEU完成内部操作;完成内部操作;操作结果若操作结果若EUEU提出请求,则由提出请求,则由BIUBIU负责产生负责产生2020位实际目标地址,将结果写入存储
10、器里;位实际目标地址,将结果写入存储器里;(2 2)总线接口单元)总线接口单元寄存器结构及操作寄存器结构及操作在在8086/8088CPU8086/8088CPU中,把寄存器分成四大类:中,把寄存器分成四大类:数据寄存器;数据寄存器;地址指针和变址寄存器;地址指针和变址寄存器;段基址寄存器;段基址寄存器;控制寄存器;控制寄存器;(一)数据寄存器(一)数据寄存器用来存放操作数及中间结果的通用寄存器称为数据寄用来存放操作数及中间结果的通用寄存器称为数据寄存器。存器。16位寄存器:位寄存器:AX,BX,CX,DX(可以分成两个(可以分成两个8位的位的使用)使用)8位寄存器:位寄存器:AH,AL,BH
11、,BL,CH,CL,DH,DL有些存储器有特殊功能:如有些存储器有特殊功能:如AX和和AL为累加器,乘法为累加器,乘法指令中专用;指令中专用;BX可以作为基址指针,可以作为基址指针,CX为计数寄存为计数寄存器。器。AX - 1)作为累加器用,在加法运算中参与运算,结果存于累加其中;2)所有的I/O指令都使用这一寄存器与外部设备传送信息BX - 作为通用寄存器使用,在计算存储器地址的时候,它经常用作基址寄存器CX - 1)作为通用寄存器使用;2)常用来保存计数值,如在移位指令、循环指令和串处理指令中用作隐含的计数器DX -1)作为通用寄存器使用;2)在一些指令中,通常用它来存放数据,所以又称为数
12、据寄存器;3)在做双字长运算时,将DX和AX组合在一起存放双字长数,用DX存放高位字;4)对某些I/O操作时,DX用来存放端口的地址(二)地址指针和变址寄存器(二)地址指针和变址寄存器指针寄存器包括堆栈指针寄存器指针寄存器包括堆栈指针寄存器SPSP(stack stack pointerpointer)和基数指针寄存器)和基数指针寄存器BP(base pointer)BP(base pointer),变址寄存器包括源变址寄存器变址寄存器包括源变址寄存器SI(source index )SI(source index )和目的变址寄存器和目的变址寄存器DI(destination index)D
13、I(destination index)。这。这4 4个寄存器都是个寄存器都是1616位寄存器。位寄存器。这些寄存器在运算过程中也可用来存放操作数这些寄存器在运算过程中也可用来存放操作数( (只只能以字为单位能以字为单位) ),但经常的用途是在段内寻址时,但经常的用途是在段内寻址时提供偏移地址。提供偏移地址。SP和BP一般与段寄存器SS联用,以确定堆栈段中某一存储单元的地址,SP用以指示栈顶的偏移地址,而BP可作为堆栈区中的一个基地址,用以确定在堆栈中的操作数地址。SI和DI一般与段寄存器DS联用,以确定数据段中某一存储单元的地址。SI和DI具有自动增量和自动减量的功能,这一点使在串操作指令中
14、用作变址非常方便,SI作为隐含的源变址和DS联用,DI作为隐含的目的变址和ES联用,从而达到在数据段和附加段中寻址的目的。 (三)段基址寄存器(三)段基址寄存器段基址寄存器用于存放段基址寄存器用于存放4 4个当前段的起始地址。个当前段的起始地址。4 4个段为:个段为:代码段代码段CSCS,数据段,数据段DSDS,堆栈段,堆栈段SSSS和附加段和附加段ESES。1 1、存储器的段、存储器的段8086/8088CPU8086/8088CPU对可寻址的对可寻址的1MB1MB空间划分为很多个逻辑空间划分为很多个逻辑段,每个逻辑小于段,每个逻辑小于64KB64KB,段内地址是连续的。,段内地址是连续的。
15、CPUCPU规定规定4 4个段寄存器存放当前可寻址的段基址。个段寄存器存放当前可寻址的段基址。CSCS指示当前的代码段;指示当前的代码段;DSDS指示当前的数据段;指示当前的数据段;SSSS指示当前的堆栈段;指示当前的堆栈段;ESES指示当前的附加段;指示当前的附加段;(三)段基址寄存器(三)段基址寄存器为了方便编写程序,为了方便编写程序,4 4个段寄存器是隐含使用的,但也允个段寄存器是隐含使用的,但也允许段超越许段超越DEBUG DEBUG 命令的使用命令的使用(1)(1)1、输入 DEBUG 运行DEBUG程序,显示提示符_ 。 2、退出DEBUG命令:Q 3、显示CPU内部所有寄存器内容
16、和标志位状态:R 显示和修改标志位状态 RF: 4、汇编命令:A 起始地址,若不输入指令打回车键退出A命令。 5、单步命令:T=起始地址 运行指令数,进入子程序内部。6、反汇编命令:U 起始地址 结束地址7、修改寄存器命令:R 寄存器名8、显示内存命令:D 起始地址 结束地址DEBUG DEBUG 命令的使用命令的使用(2)(2)9、运行命令:G=起始地址 结束(断点)地址10、修改内存命令:E 起始地址,连续修改打空格键。打回车键退出E命令。11、文件命名命令:N 盘号:文件名 12、读文件命令:L 内存地址 13、写文件命令:W 内存地址 14、读扇区命令:L 内存地址 盘号(0-A:,1
17、-B:) 扇区号 扇区数 15、写扇区命令:W 内存地址 盘号 扇区号 扇区数 16、内存搬家命令:M 起始地址 结束地址 目的地址 0101 0100 0011 1001+0100 0101 0110 10101001 1001 1010 0011高位高位=1,SF=1,NG低低8位中偶数为位中偶数为4个,个,PF=1,PE运算结果不为运算结果不为0,ZF=0,NZ低低4位向前有进位,位向前有进位,AF=1,AC最高位向前没有进位,最高位向前没有进位,CF=0,NC运算结果溢出,运算结果溢出,OF=1,OV(五)指令指针寄存器(五)指令指针寄存器IPIP1 1、 指令指针寄存器指令指针寄存器
18、IPIP 指令指针寄存器指令指针寄存器IPIP始终指向当前代码段始终指向当前代码段(CS)(CS)所要取出的下一条指令的地址。每取出一个字所要取出的下一条指令的地址。每取出一个字节指令后,节指令后,IPIP自动加自动加1 1。可以用转移指令、调。可以用转移指令、调用指令及中断和复位等改变用指令及中断和复位等改变IPIP值。值。2.3存储器一个存储单元存放的信息为存储单元的内容字节单元内容:地址00004H的内容为34H,表示为(0004H)=34H。字单元内容:多用偶地址来表示字单元的地址,字的低字节在偶地址上为偶地址,地址00004H的字单元内容为1234H,表示为(00002H)=1234
19、H。如下图所示。某单元内容的内容:某单元的内容为要寻找的单元地址,该地址所指的内容为要寻找的内容。 某单元内容的内容 (0004H0004H)=1234H=1234H(1234H1234H)=FFEEH=FFEEH则记(则记(0004H0004H)=FFEEH=FFEEH;两个括号表示内容的内容,即地两个括号表示内容的内容,即地址址0004H0004H单元的内容的内容为单元的内容的内容为FFEEHFFEEH。存储单元的的内容:一个存储单元里面存放的有效信息。 由于机器字长是16位,而字数据必须转换为字节数据才能存放到存储器中。所以一个字数据存入存储器中占用连续的二个存储单元:低位字节存入低地址
20、,高位字节存入高地址。字单元的地址采用它的低地址来表示。存储器的分段8086/8088系统中1MB的存储单元按照00000H至FFFFFH来编址。但CPU的内部寄存器都是16位的,显然用寄存器不能直接对1M字节的内存空间进行寻址,为此引入了分段、物理地址和逻辑地址的概念。1)分段的实现: 8086/8088中将1MB内存分为若干个段(称为逻辑段),每个段最多包含64KB。段与段之间是相互独立的,可以分别寻址。规定每个段的首地址是一个可以被16整除的数(即段起始地址的低4位为0)。因此,可以取20位地址码中的高16位来表示段地址。前已指出,8086/8088 CPU设置了4个段寄存器(CS、DS
21、、SS、ES)。段的位置不受任何限制,段与段之间可以是连续的,可以是间断的,也可以是部分重叠的,甚至可以是完全重叠的。 (1)小段的概念 从0地址开始每16字节为一小段,每个小段的第一个字节的地址为小段的起始地址 对于16位地址总线,段内存储器小段地址如下:如: 0000H,0001H,0002H,000EH,000FH一个小段 0010H,0011H,0012H,001EH,001FH 0020H,0021H,0022H,002EH,002FH FFF0H, FFF1H, FFF2H, FFFEH, FFFFH 其中:第一列就是每个小段的首地址。(2)每个小段首地址特征: 在二进制表示的地址
22、中,它的低4位二进制一定为零!即在16进制表示的地址中,最低位为0H在1M字节的地址空间,共有64K个小段其首地址为: 二进制数小段地址 16进制数小段地址0000 0000 0000 0000 0000B 0000 0H0000 0000 0000 0001 0000B 0001 0H 1111 1111 1111 1110 0000B FFFE 0H1111 1111 1111 1111 0000B FFFF 0H(4)逻辑地址: 由段基址和段内偏移地址组成的地址,段基址和段内偏移地址都是16位的无符号二进制数,在程序设计时使用。 存储器管理:将程序中逻辑地址转移为物理地址的机构。(5)逻
23、辑地址和物理地址的关系方法:即把段地址左移4个二进制位再加上偏移地址值形成物理地址,写成: 物理地址= 16d段地址+偏移地址 每个存储单元只有唯一的物理地址。但可由不同的段地址和不同的偏移地址组成。逻辑地址与物理地址概念如下页图所示。注意: 1、在8088CPU的IBM PC系统中,存储器首尾地址的用途固定。 00000H003FFH共1K内存单元用于存放中断向量。 FFFF0HFFFFFH是存储器底部的16个单元。系统加电复位时,会自动转到FFFF0H单元执行,而在FFFF0H处存放一条无条件转移指令,转向系统初始化程序。 2、IBM PC机对段的起始地址有限制,段的起始地址一定能被16整
24、除,即段不能从任意地址开始:必须从任一小段(paragraph)的首地址开始。8086/80888086/8088的的I/OI/O组织组织I/OI/O接口电路:接口电路:它就是指它就是指CPUCPU与外部设备之间是通与外部设备之间是通信的桥梁,有时简称为接口,接口是用于实现主信的桥梁,有时简称为接口,接口是用于实现主机与外设传输信息的通道。机与外设传输信息的通道。端口:端口:每个接口芯片上都有一个或几个用于寄存每个接口芯片上都有一个或几个用于寄存信息的寄存器,为了与信息的寄存器,为了与CPUCPU的寄存器区别,我们的寄存器区别,我们称之为端口。称之为端口。端口地址:端口地址:和存储单元一样,每
25、一个端口都有唯和存储单元一样,每一个端口都有唯一确定的地址,称为端口地址。一确定的地址,称为端口地址。 从编程角度看,接口内部主要包括一个或多个从编程角度看,接口内部主要包括一个或多个CPUCPU可以可以进行读进行读/ /写操作的寄存器,又称为写操作的寄存器,又称为I/OI/O端口。端口。各各I/OI/O端口由端口地址区分。端口由端口地址区分。按存放信息的不同,按存放信息的不同,I/OI/O端口可分为三种类型端口可分为三种类型 数据端口:用于存放数据端口:用于存放CPUCPU与外设间传送的数据信息与外设间传送的数据信息 状态端口:用于暂存外设的状态信息状态端口:用于暂存外设的状态信息 控制端口
26、:用于存放控制端口:用于存放CPUCPU对外设或接口的控制信息,对外设或接口的控制信息,控制外设或接口的工作方式。控制外设或接口的工作方式。CPUCPU对外设输入对外设输入/ /输出的控制,是通过对接口电路中各输出的控制,是通过对接口电路中各I/OI/O端口的读端口的读/ /写操作完成。写操作完成。2.4 80X86 CPU 2.4 80X86 CPU 的工作模式的工作模式2.4.1 2.4.1 实模式实模式2.4.2 2.4.2 保护模式保护模式2.4.1 实模式1内存地址的分段8086/8088地址总线地址总线20根可访问的地址为:根可访问的地址为: 220 =1,048,576 = 1M
27、2分段方法用用16位段地址与位段地址与16位段内地址的迭加形成位段内地址的迭加形成20位物理地址,放在位物理地址,放在16位段寄存器位段寄存器内的段地址定义在任意内的段地址定义在任意64K字节存储段的起始地址上,段内地址(偏移地字节存储段的起始地址上,段内地址(偏移地址)定义在址)定义在64K字节存储段内的任意单元。字节存储段内的任意单元。 地址的组合:物理地址地址的组合:物理地址=段地址段地址*16D(或(或10H)+偏移地址,即物理地址偏移地址,即物理地址等于等于2进制的进制的16位段地址乘以位段地址乘以16(左移(左移4位)加位)加2进制进制16位偏移地址。为了位偏移地址。为了书写方便一
28、般采用书写方便一般采用16进制表示地址和数据,则物理地址等于进制表示地址和数据,则物理地址等于16进制的进制的4位位段地址乘以段地址乘以10H(左移(左移1位)加位)加16进制进制4位偏移地址。位偏移地址。 如图如图2-9所示。所示。3 3物理地址、段地址、段内地址和逻辑地址物理地址、段地址、段内地址和逻辑地址(1 1)物理地址:与内存单元一一对应的)物理地址:与内存单元一一对应的2020位位2 2进进制(或制(或5 5位位1616进制)表示的地址为物理地址。进制)表示的地址为物理地址。 1MB=00000H 1MB=00000H FFFFFHFFFFFH每个物理地址代表一个唯一的内存单元。每
29、个物理地址代表一个唯一的内存单元。(2 2)段地址:将)段地址:将1MB1MB的内存空间分成长为的内存空间分成长为64K64K字节字节的程序区和数据区为段,每个段用的程序区和数据区为段,每个段用1 1个个1616位位2 2进制进制地址表示。地址表示。 (3 3)段内地址:(偏移地址或偏移值):)段内地址:(偏移地址或偏移值):1616位位2 2进制段内地址为偏移地址。不同段内的偏移地址进制段内地址为偏移地址。不同段内的偏移地址是存放在不同的寄存器中是存放在不同的寄存器中. .(4 4)逻辑地址:用段地址和偏移地址来表示内存)逻辑地址:用段地址和偏移地址来表示内存单元的地址为逻辑地址,两地址之间
30、用单元的地址为逻辑地址,两地址之间用“:”隔隔开。常写成:开。常写成: 段地址:偏移地址。段地址:偏移地址。 例如:例如: 物理地址为物理地址为00001H00001H逻辑地址为逻辑地址为0000H0000H:0001H0001H 当物理地址为当物理地址为00001H00001H时,其逻辑地址为时,其逻辑地址为0000H0000H:0001H0001H,段地址为,段地址为0000H0000H段内地址为段内地址为0001H0001H。4 4逻辑地址与物理地址的换算关系逻辑地址与物理地址的换算关系逻辑地址是段地址和偏移地址的组合表示,物理逻辑地址是段地址和偏移地址的组合表示,物理地址是段地址和偏移
31、地址的迭加表示。地址是段地址和偏移地址的迭加表示。 物理地址物理地址= =段地址段地址* *16D16D(或(或10H10H)+ +偏移偏移地址地址逻辑地址逻辑地址= =段地址:偏移地址段地址:偏移地址【例【例2-72-7】设逻辑地址为】设逻辑地址为1111H1111H:2222H2222H则物理地址为:则物理地址为:1111H1111H10H+2222H=13332H10H+2222H=13332H表示:当逻辑地址为表示:当逻辑地址为1111H1111H:2222H2222H时物理地址为时物理地址为13332H13332H假设段地址假设段地址1111H1111H为代码段地址,则为代码段地址,
32、则1111H1111H存放在存放在代码段寄存器代码段寄存器CSCS中,偏移地址中,偏移地址2222H2222H就放在指针就放在指针寄存器寄存器IPIP中。中。 保护模式下的保护模式下的80 x8680286以上的计算机增加了物理地址空间,如以上的计算机增加了物理地址空间,如80286提供了提供了16M,80386提供了提供了4GB的地址空的地址空间或更多的地址空间,前面介绍的在实模式下间或更多的地址空间,前面介绍的在实模式下的寻址方式是由逻辑地址得到物理地址的,实的寻址方式是由逻辑地址得到物理地址的,实模式下最大寻址空间只为模式下最大寻址空间只为1MB。在增加了地址。在增加了地址空间的情况下,
33、系统首先要解决的问题是如何空间的情况下,系统首先要解决的问题是如何寻址,因此引出了保护模式的存储器寻址方法。寻址,因此引出了保护模式的存储器寻址方法。同时在同时在WINDOWS系统下可以提供多任务处理系统下可以提供多任务处理功能,即多个应用程序能同时运行,同时还要功能,即多个应用程序能同时运行,同时还要对存放在存储器中的代码及数据的共享和保护对存放在存储器中的代码及数据的共享和保护提供支持。提供支持。1保护模式存储器寻址机制保护模式存储器寻址机制在在80286CPU以上的微处理器,既可以工作在实模以上的微处理器,既可以工作在实模式下也可以工作在保护模式下,如果要工作在式下也可以工作在保护模式下
34、,如果要工作在保护模式下,要求程序员在程序中指定逻辑地保护模式下,要求程序员在程序中指定逻辑地址,机器则采用另外一种间接的方法得到相应址,机器则采用另外一种间接的方法得到相应的物理地址。因此,对程序员编程来说,并未的物理地址。因此,对程序员编程来说,并未增加复杂性。增加复杂性。在保护模式下,逻辑地址由选择符和偏移地址两在保护模式下,逻辑地址由选择符和偏移地址两部分组成。选择符存放在段寄存器中,但它不部分组成。选择符存放在段寄存器中,但它不能直接表示段基地址,而由操作系统通过一定能直接表示段基地址,而由操作系统通过一定的方法取得段基地址,再和偏移地址相加,从的方法取得段基地址,再和偏移地址相加,
35、从而求得所选存储单元的物理地址。下图所表示而求得所选存储单元的物理地址。下图所表示的为保护模式存储器寻址的示意图。的为保护模式存储器寻址的示意图。在实模式下,段寄存器指示段基地址,即段寄存在实模式下,段寄存器指示段基地址,即段寄存器存放在当前正在允许程序的段基地址。器存放在当前正在允许程序的段基地址。从图可以看出,在保护模式下段寄存器存放当前从图可以看出,在保护模式下段寄存器存放当前正在运行程序的段选择符,通过段描述符表中正在运行程序的段选择符,通过段描述符表中的描述符间接的形成段基地址,加上偏移地址的描述符间接的形成段基地址,加上偏移地址得到最终的线性地址。此时对于存储器来说不得到最终的线性
36、地址。此时对于存储器来说不必分段就可以访问到所有的内存地址。必分段就可以访问到所有的内存地址。在实模式下,段地址是直接通过段寄存器得到的,在实模式下,段地址是直接通过段寄存器得到的,在保护模式下段地址是间接得到的。另外,保在保护模式下段地址是间接得到的。另外,保护模式的偏移地址最大可以为护模式的偏移地址最大可以为32位,最大段长位,最大段长可以从可以从64KB扩大到扩大到4GB。1 1、指向程序堆栈区的段寄存器是()、指向程序堆栈区的段寄存器是()CS B. DS C.SS D.ESCS B. DS C.SS D.ES2 2、存放当前堆栈段栈顶的偏移地址的寄存器是(、存放当前堆栈段栈顶的偏移地
37、址的寄存器是( )A A、BP BBP B、SP CSP C、IP DIP D、SSSS3 3、存放当前正在执行指令的下一条指令的偏移地址的、存放当前正在执行指令的下一条指令的偏移地址的寄存器是(寄存器是( )A A、SP SP 、ESP BESP B、IPIP、EIP CEIP C、CS DCS D、BPBP、EBPEBP4 4、指向程序代码段的段寄存器是(、指向程序代码段的段寄存器是( )A A、CS BCS B、DS CDS C、SS DSS D、FSFS5 5、已知内存中两个字节单元的内容、已知内存中两个字节单元的内容(20000H20000H)10H10H,(20001H20001H
38、)20H20H则从字单元则从字单元20000H20000H中取出的一个中取出的一个字为()字为()A A、10H B10H B、20H C20H C、1020H D1020H D、2019H2019H6 6、已知两个、已知两个1616位字数据位字数据4321H4321H和和0DCBAH0DCBAH,它们相,它们相加后的结果是多少?标志位加后的结果是多少?标志位CFCF、ZFZF、SFSF的值各是的值各是多少?多少?7 7、在实模式下,逻辑地址、在实模式下,逻辑地址2F3E:1020H2F3E:1020H对应的物理对应的物理地址是多少?该物理地址还有其他逻辑地址吗?地址是多少?该物理地址还有其他逻辑地址吗?试举例说明。试举例说明。8 8、已知、已知SS=1000HSS=1000H,SP=0100HSP=0100H,现在要求将数据,现在要求将数据5080H5080H、6172H6172H压入堆栈,然后将栈顶字单元的内压入堆栈,然后将栈顶字单元的内容弹出堆栈,画出每步操作的堆栈示意图。容弹出堆栈,画出每步操作的堆栈示意图。课后作业题第第33面面2.2,2.3,2.4,2.5