1
第二章 80x86计算机组织
? 计算机系统
? 存储器
? 中央处理机
? 外部设备
2
1,计算机系统
硬件,
中央处理机
CPU
总线控制
逻辑
接 口
接 口
存储器
大容量
存储器
I/O设备
I/O子系统
系
统
总
线
.,
,
.,
,
软件,系统软件 用户软件
3
2,存储器
存储单元的 地址 和 内容,
? 存储器以字节( 8 bit) 为单位存储信息
? 每个字节单元有一个地址,从 0 编号,顺序加 1
? 地址用二进制数表示(无符号整数,写成十六进制)
? 一个字要占用相继的两个字节
? 低位字节存入低地址,高位字节存入高地址
? 机器以偶地址访问(读 / 写)存储器
? 字单元地址用它的低地址来表示
4
1 0 0 1 1 1 1 1 1000H ( 1000H ) = 9F H
0 0 1 0 0 1 1 0 1001H
0 0 0 1 1 1 1 0 1002H ( 1002H ) = 1E H
1 1 0 1 0 1 1 1 1003H
( 1000H ) = 269F H
( 1002H ) = D71E H
( 1001H ) = 1E26 H
访问两次存储器
( 1001H ) = 26 H
( 1003H ) = D7 H
存储器
5
存储器的分段,
20 根地址线,地址范围 00000H ~ FFFFFH
机器字长 16位,仅能表示地址范围 0000H ~ FFFFH
小段,每 16个字节为一小段, 共有 64K个小段
小段的首地址
00000 H ~ 0000F H
00010 H ~ 0001F H
00020 H ~ 0002F H
…
FFFF0 H ~ FFFFF H
段起始地址,小段首地址
段的大小,64K 范围内的任意字节
6
物理地址 = 16d ? 段地址 + 偏移地址
16 位 段 地 址
16 位 偏 移 地 址
0000
+
20 位 物 理 地 址
物理地址,每个存储单元唯一的 20 位地址
段地址,段起始地址的高 16 位
偏移地址,段内相对于段起始地址的偏移值( 16 位)
(有效地址 EA)
7
存储器的 逻辑 分段,
存储器
64K代码
01500H
42000H
1CD00H 0150H
4200H
1CD0H
段寄存器
CS
DS
SS
ES
64K堆栈
64K数据
64K附加数据
B0000H
B000H
8
存储器
8K代码
2K数据
256堆栈
02000H
04800H
04000H
0200H
0400H
0480H
CS
DS
SS
例,(DS) = 0400H,EA = 1234H,
物理地址 = 16d ? (DS) + EA
= 05234H
9
3,中央处理机
8086/8088寄存器组,
数据寄存器,
指针及变址寄存器,SP,BP,SI,DI
段寄存器,CS,DS,SS,ES
控制寄存器,IP,FLAGS
CPU组成:算术逻辑部件 ALU,控制逻辑、工作寄存器
AX
BX
CX
DX
AH AL
BH BL
CH CL
DH DL
高 8位 低 8位
10
标志寄存器 ( 程序状态字寄存器 PSW)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
条件码标志,控制标志,
OF 溢出标志 DF 方向标志
SF 符号标志 IF 中断标志
ZF 零标志 TF 陷阱标志
CF 进位标志
AF 辅助进位标志
PF 奇偶标志
OF DF IF TF SF ZF AF PF CF
11
例,MOV AX,1
MOV BX,2
ADD AX,BX
指令执行后,(AX)=3,OF=0,CF=0,ZF=0,SF=0
例,MOV AX,FFFFH
MOV BX,1
ADD AX,BX
指令执行后,(AX)=0,OF=0,CF=1,ZF=1,SF=0
12
13
14
15
寄存器与存储器的比较,
寄 存 器 存 储 器
在 CPU内部 在 CPU外部
访问速度快 访问速度慢
容量小,成本高 容量大,成本低
用名字表示 用地址表示
没有地址 地址可用各种方式形成
16
4,外部设备
外部设备与主机 ( CPU 和存储器 ) 的通信是通过外设
接口 ( Interface) 进行的, 每个接口包括一组寄存器 。
数据寄存器, 存放外设和主机间传送的数据
状态寄存器, 保存外设或接口的状态信息
命令寄存器, 保存 CPU发给外设或接口的控制命令
外设中每个寄存器有一个端口 ( Port) 地址,
构成一个独立于内存的 I / O 地址空间,0000H ~ FFFFH
17
80x86的寄存器结构,
AH AX AL
BH BX BL
CH CX CL
DH DX DL
SP
BP
SI
DI
IP
FLAGS
CS
DS
SS
ES
8086 /
8088 /
80286
寄
存
器
EAX
EBX
ECX
EDX
ESP
EBP
ESI
EDI
EIP
EFLAGS
FS
GS
80x86的程序可见寄存器组
通用寄存器
专用寄存器
段寄存器
18
OF DF IF TF SF ZF AF PF CF
8086/8088
OF DF IF TF SF ZF AF PF CF IOPL NT
80286
RF OF DF IF TF SF ZF AF PF CF IOPL NT VM
80386
RF OF DF IF TF SF ZF AF PF CF IOPL NT VM AC
80486
RF OF DF IF TF SF ZF AF PF CF IOPL NT VM AC ID VIP VIF
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Pentium
80x86的标志寄存器
IOPL,I/O特权级 VIP,虚拟中断未决标志
NT,嵌套任务标志 VIF,虚拟中断标志
RF,重新启动标志 VM,虚拟 8086模式位
AC,对准检查方式位
ID,标识标志
19
支持多任务处理功能
支持虚拟存储器特性
保护模式下的 80x86,
保护模式下的存储器寻址
所选存储单元
描 述 符 64 描述符表
所选段
存 储 器
段基地址 32
选择器 16 偏移地址 32
逻辑地址
20
描述符,
描述符的内容由系统设置,长 8 个字节,用来说明段的
大小、在存储器中的位置、控制和状态信息等; 由基地址、
界限、访问权等部分组成。
描述符表,
描述符存放在描述符表中,描述符表存放在存储器中,
每个表构成一个 64KB长的段,可存放 8K描述符。
全局描述符表( GDT)
局部描述符表( LDT)
中断描述符表( IDT)
选择器,
存放在段寄存器中,16位长,给出描述符表中的描述符
地址。
21
GDTR 全局描述符表寄存器
IDTR 中断描述符表寄存器
存放对应描述符表的基地址和界限值
LDTR 局部描述符表寄存器
TR 任务寄存器
程序不可见寄存器,
高速缓冲存储器( cache)
22
第二章作业
p33 2.1~2.5
第二章 80x86计算机组织
? 计算机系统
? 存储器
? 中央处理机
? 外部设备
2
1,计算机系统
硬件,
中央处理机
CPU
总线控制
逻辑
接 口
接 口
存储器
大容量
存储器
I/O设备
I/O子系统
系
统
总
线
.,
,
.,
,
软件,系统软件 用户软件
3
2,存储器
存储单元的 地址 和 内容,
? 存储器以字节( 8 bit) 为单位存储信息
? 每个字节单元有一个地址,从 0 编号,顺序加 1
? 地址用二进制数表示(无符号整数,写成十六进制)
? 一个字要占用相继的两个字节
? 低位字节存入低地址,高位字节存入高地址
? 机器以偶地址访问(读 / 写)存储器
? 字单元地址用它的低地址来表示
4
1 0 0 1 1 1 1 1 1000H ( 1000H ) = 9F H
0 0 1 0 0 1 1 0 1001H
0 0 0 1 1 1 1 0 1002H ( 1002H ) = 1E H
1 1 0 1 0 1 1 1 1003H
( 1000H ) = 269F H
( 1002H ) = D71E H
( 1001H ) = 1E26 H
访问两次存储器
( 1001H ) = 26 H
( 1003H ) = D7 H
存储器
5
存储器的分段,
20 根地址线,地址范围 00000H ~ FFFFFH
机器字长 16位,仅能表示地址范围 0000H ~ FFFFH
小段,每 16个字节为一小段, 共有 64K个小段
小段的首地址
00000 H ~ 0000F H
00010 H ~ 0001F H
00020 H ~ 0002F H
…
FFFF0 H ~ FFFFF H
段起始地址,小段首地址
段的大小,64K 范围内的任意字节
6
物理地址 = 16d ? 段地址 + 偏移地址
16 位 段 地 址
16 位 偏 移 地 址
0000
+
20 位 物 理 地 址
物理地址,每个存储单元唯一的 20 位地址
段地址,段起始地址的高 16 位
偏移地址,段内相对于段起始地址的偏移值( 16 位)
(有效地址 EA)
7
存储器的 逻辑 分段,
存储器
64K代码
01500H
42000H
1CD00H 0150H
4200H
1CD0H
段寄存器
CS
DS
SS
ES
64K堆栈
64K数据
64K附加数据
B0000H
B000H
8
存储器
8K代码
2K数据
256堆栈
02000H
04800H
04000H
0200H
0400H
0480H
CS
DS
SS
例,(DS) = 0400H,EA = 1234H,
物理地址 = 16d ? (DS) + EA
= 05234H
9
3,中央处理机
8086/8088寄存器组,
数据寄存器,
指针及变址寄存器,SP,BP,SI,DI
段寄存器,CS,DS,SS,ES
控制寄存器,IP,FLAGS
CPU组成:算术逻辑部件 ALU,控制逻辑、工作寄存器
AX
BX
CX
DX
AH AL
BH BL
CH CL
DH DL
高 8位 低 8位
10
标志寄存器 ( 程序状态字寄存器 PSW)
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
条件码标志,控制标志,
OF 溢出标志 DF 方向标志
SF 符号标志 IF 中断标志
ZF 零标志 TF 陷阱标志
CF 进位标志
AF 辅助进位标志
PF 奇偶标志
OF DF IF TF SF ZF AF PF CF
11
例,MOV AX,1
MOV BX,2
ADD AX,BX
指令执行后,(AX)=3,OF=0,CF=0,ZF=0,SF=0
例,MOV AX,FFFFH
MOV BX,1
ADD AX,BX
指令执行后,(AX)=0,OF=0,CF=1,ZF=1,SF=0
12
13
14
15
寄存器与存储器的比较,
寄 存 器 存 储 器
在 CPU内部 在 CPU外部
访问速度快 访问速度慢
容量小,成本高 容量大,成本低
用名字表示 用地址表示
没有地址 地址可用各种方式形成
16
4,外部设备
外部设备与主机 ( CPU 和存储器 ) 的通信是通过外设
接口 ( Interface) 进行的, 每个接口包括一组寄存器 。
数据寄存器, 存放外设和主机间传送的数据
状态寄存器, 保存外设或接口的状态信息
命令寄存器, 保存 CPU发给外设或接口的控制命令
外设中每个寄存器有一个端口 ( Port) 地址,
构成一个独立于内存的 I / O 地址空间,0000H ~ FFFFH
17
80x86的寄存器结构,
AH AX AL
BH BX BL
CH CX CL
DH DX DL
SP
BP
SI
DI
IP
FLAGS
CS
DS
SS
ES
8086 /
8088 /
80286
寄
存
器
EAX
EBX
ECX
EDX
ESP
EBP
ESI
EDI
EIP
EFLAGS
FS
GS
80x86的程序可见寄存器组
通用寄存器
专用寄存器
段寄存器
18
OF DF IF TF SF ZF AF PF CF
8086/8088
OF DF IF TF SF ZF AF PF CF IOPL NT
80286
RF OF DF IF TF SF ZF AF PF CF IOPL NT VM
80386
RF OF DF IF TF SF ZF AF PF CF IOPL NT VM AC
80486
RF OF DF IF TF SF ZF AF PF CF IOPL NT VM AC ID VIP VIF
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Pentium
80x86的标志寄存器
IOPL,I/O特权级 VIP,虚拟中断未决标志
NT,嵌套任务标志 VIF,虚拟中断标志
RF,重新启动标志 VM,虚拟 8086模式位
AC,对准检查方式位
ID,标识标志
19
支持多任务处理功能
支持虚拟存储器特性
保护模式下的 80x86,
保护模式下的存储器寻址
所选存储单元
描 述 符 64 描述符表
所选段
存 储 器
段基地址 32
选择器 16 偏移地址 32
逻辑地址
20
描述符,
描述符的内容由系统设置,长 8 个字节,用来说明段的
大小、在存储器中的位置、控制和状态信息等; 由基地址、
界限、访问权等部分组成。
描述符表,
描述符存放在描述符表中,描述符表存放在存储器中,
每个表构成一个 64KB长的段,可存放 8K描述符。
全局描述符表( GDT)
局部描述符表( LDT)
中断描述符表( IDT)
选择器,
存放在段寄存器中,16位长,给出描述符表中的描述符
地址。
21
GDTR 全局描述符表寄存器
IDTR 中断描述符表寄存器
存放对应描述符表的基地址和界限值
LDTR 局部描述符表寄存器
TR 任务寄存器
程序不可见寄存器,
高速缓冲存储器( cache)
22
第二章作业
p33 2.1~2.5