第2章 80x86计算机组织
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.5 如果在一个程序开始执行以前(CS)=0A7F0H(如十 六进制数的最高位为字母,则应在其前加一个0),(IP) =2B40H,试问该程序的第一个字的物理地址是多少?
该程序的第一个字的物理地址是0AAA40H。
优点: 允许程序在存储器内重定位; 允许实模式程序在保护模式下运行; 有利于程序和数据的分离。
物理地址 = 16 段地址 + 偏移地址
16 位 段 地 址
0000
16 位 偏 移 地 址
+
20 位 物 理 地 址
例:(DS) = 2100H, (BX) = 0500H (PA) = 21000H+0500H = 21500H
EIP EFLAGS
IP FLAGS
CS
DS
80x86的程序可见寄存器组
SS ES
通用寄存器
FS
专用寄存器
GS
段寄存器
0
8086 / 8088 / 80286
寄 存 器
80x86的标志寄存器 (P.23)
VM RF
OF DF IF TF SF ZF NT IOPL OF DF IF TF SF ZF NT IOPL OF DF IF TF SF ZF
2.3 8086微机的存储器中存放信息如下图所示。试读出 30022H和30024H字节单元的内容,以及30021H和30022H 字单元的内容。
字节单元:(30022H) = AB H,(30024H) = EF H 字单元: (30021H) = AB34 H,(30022H) = CDAB H。
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OF DF IF TF SF ZF AF PF CF
条件码标志:
OF 溢出标志 SF 符号标志 ZF 零标志 CF 进位标志 AF 辅助进位标志 PF 奇偶标志
控制标志:
DF 方向标志 IF 中断标志 TF 陷阱标志
例:ADD AX, BX JO / JC ERROR ?
外设中每个寄存器有一个端口(Port)地址,构 成 一个独立于内存的 I / O 地址空间:0000H ~ FFFFH
80x86的寄存器结构
31
EAX EBX ECX EDX ESP EBP ESI EDI
16 15
AH BH CH DH
87
AX AL BX BL CX CL DX DL SP BP SI DI
CS 0150H DS 4200H SS 1CD0H ES B000H
存储器
01500H
64KB代码
1CD00H
64KB堆栈
42000H
64KB数据
B0000H
64KB附加数据
CS 0200H DS 0400H SS 0480H
存储器
02000H 8KB代码
04000H 2KB数据 256堆栈 04800H
Байду номын сангаас
寄存器与存储器的比较:
寄存器
存储器
在CPU内部
在CPU外部
访问速度快
访问速度慢
容量小,成本高 容量大,成本低
用名字表示
用地址表示
没有地址
地址可用各种方式形成
4. 外部设备
外部设备与主机( CPU 和存储器)的通信是 通过外设接口(Interface)进行的,每个接口包括 一组寄存器。
数据寄存器:存放外设和主机间传送的数据 状态寄存器:保存外设或接口的状态信息 命令寄存器:保存CPU发给外设或接口的控制命令
在16进制中FF为255。而0到255有256个数。在80X86中端口 号在256内的就是不通过DX寄存器。所以可直接由指令指定的 I/O端口数为256。
2.2 有两个16位字1EE5H和2A3CH分别存放在8086微机的存 储器的000B0H和000B3H单元中,请用图表示出它们在存储器 里的存放情况。
3. 中央处理器
CPU组成:算术逻辑部件ALU、 控制器、寄存器
8086/8088寄存器组:
数据寄存器: 高8位
低8位
AX
AH
AL
BX
BH
BL
CX
CH
CL
DX
DH
DL
指针及变址寄存器:SP、BP、SI、DI
段寄存器:
CS、DS、SS、ES
控制寄存器:
IP、FLAGS
标志寄存器 ( FLAGS / PSW )
存储器的逻辑地址与物理地址
逻辑地址
物理地址
段地址 : 偏移地址
1000 : 0000H
1000 : 0001H 1000 : 0002H 1000 : 0003H
1000 : 0004H 1000 : 0005H
10011111 00100110 01001000
10000011 01011100 10100010
保护模式下的80x86
支持多任务处理功能 支持虚拟存储器特性
存储器
段基地址32
逻辑地址
选择器 16
偏移地址 32
所选存储单元
所选段
描 述 符64
描述符表
保护模式下的存储器寻址
第2章作业
Page 33 2.1 ~ 2.5
2.1 在8086微机的输入/输出指令中,I/O端口号通常是由DX寄 存器提供的,但有时也可以在指令中直接指定00~FFH的端口 号。试问可直接由指令指定的I/O端口数。
8086/8088
AF PF CF
80286
AF PF CF
80386
AF PF CF
80486
AC VM RF NT IOPL OF DF IF TF SF ZF AF PF CF
Pentium
ID VIP VIF AC VM RF NT IOPL OF DF IF TF SF ZF AF PF CF
2.4 在实模式下,段地址和偏移地址为3017:000A的存储 单元的物理地址是什么?如果段地址和偏移地址是3015: 002A和3010:007A呢?
3017:000A的存储单元的物理地址是3017AH, 3015:002A的存储单元的物理地址是3017AH, 3010:007A的存储单元的物理地址是3017AH。
第2章 80x86计算机组织
• 计算机系统 • 存储器 • 中央处理机 • 外部设备
1. 计算机系统
硬件:
中央处理机 CPU
总线控制 逻辑 系 统 总 线
存储器
接口
...
接口
大容量 存储器
...
I/O设备
I/O子系统
软件:系统软件 用户软件
2. 存储器
存储单元的地址和内容:
存储器以字节(8 bit)为编程单位 每个字节单元都有唯一的地址编码 地址用无符号整数来表示(编程用十六进制表示) 一个字要占用相继的两个字节 低位字节存入低地址,高位字节存入高地址 字单元地址用它的低地址来表示 机器以偶地址访问(读 / 写)存储器
10000H 10001H 10002H 10003H 10004H 10005H
字节内容(10000H)=9FH;(10001H)=26H
字内容 (10000H)=269FH;(10001H)=4826H
访问两次内存
存储器的分段:
20 根地址线: 地址范围 00000H ~ FFFFFH (1MB) 机器字长16位:仅能表示地址范围 0000H ~ FFFFH
(64KB)
小段:每16个字节为一小段,共有64K个小段
小段的首地址 00000 H ~ 0000F H 00010 H ~ 0001F H 00020 H ~ 0002F H … FFFF0 H ~ FFFFF H
段起始地址:小段首地址 段的大小: 64K 范围内的任意字节
存储器的逻辑分段:
段寄存器
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
IOPL: I/O特权级 NT: 嵌套任务标志 RF: 重新启动标志 AC: 对准检查方式位 ID: 标识标志
VIP:虚拟中断未决标志 VIF:虚拟中断标志 VM:虚拟8086模式位