汇编语言第2章80x86计算机组织

合集下载

第二章 80x86计算机组织

第二章 80x86计算机组织

17
描述符由基地址、界限、访问权等部分组成
基地址(Base):80386以上处理器的基地址为32位,说明段可以从4GB存储器 的任何地址开始。 界限(Limit): 存放该段的长度,80386及其后继机型的界限部分为20位。
粒度位G(Granularity):
当G=0时,段长的粒度单位为字节,20位段界限可使段长从1B~1MB,步距为1B;
22
图 保护模式存储器寻址
23
(4) 问题
*选择器给出了描述符表中的描述符地址,那么描述符表又 在哪里?
* 保护模式的寻址要间接地取得存储器的地址(要增加一次 对存储器的访问),怎样保证系统的运行速度?
24
GDTR 全局描述符表寄存器 IDTR 中断描述符表寄存器 LDTR 局部描述符表寄存器 TR 任务寄存器 25
G(Granularity)粒度位:
G=0 段长的粒度单位为字节,20位段界限可使段长从1B~1MB,步距为1B; G=1 段长的粒度单位为页,每页为4KB,20位段界限可定义的段长从4KB~4GB, 步距为4KB。 D/B位:在代码段里,这位称为D(Default operation size) 缺省操作长度位。 D=1 表示操作数及有效地址长度均为32位; D=0 表示操作数及有效地址长度均为16位。 在数据段里,这位称为 B 位,它控制了两个有关堆栈的操作。其一控制堆栈指针 寄存器SP的长度:B=1使用32位ESP寄存器;B=0使用16位SP寄存器。其二指示向下扩展 的堆栈的上界限值。 AVL(Available)可用位:该位只能由系统软件使用。
12
实模式寻址
存储单元的20位真实地址称为物理地址,采用了段地址、 偏移地址方案后,物理地址可以按如下公司计算: 物理地址=(段寄存器)×10H + 偏移地址 偏移地址也叫有效地址。 完整地址的表示:段加偏移地址通常写成1000:2000的形 式,表示段地址1000与偏移2000H。这种形式的地址称为完整 地址。

第二章 80x86计算机组织

第二章 80x86计算机组织

4/54
2.2 计算机系统概述
计算机系统包括硬件和软件两大部分。 2.2.1 硬件 硬件:三个主要组成部分(中央处理器、存储器、 输入输出子系统),用系统总线连接。
存储器 中央处理机 CPU 总线控制 逻辑
系 统 总 线
接 口 接 口
大容量 存储器 I/O设备
I/O子系统
5/54

中央处理单元 CPU
8086/8088
数据总线DB 准16
80286
16
80386
32
80486
32
Pentium
64
地址总线AB
最大寻址 时钟范围(MHz) 执行速度(MIPS)
20
1MB 4.77 0.05
24
16MB 6~16 0.4~0.8
32
4GB 16~40 3~4
32
4GB 33~120 20~75
32
4GB 66~166 112~280
26/54
溢出标志OF(Overflow Flag)

若算术运算的结果有溢出,则OF=1;否 则 OF=0。例如:
3AH + 7CH=B6H,产生溢出:OF = 1 AAH + 7CH=(1)26H,没有溢出:OF = 0
问题:
什么是溢出? 溢出和进位有什么区别? 处理器怎么处理,程序员如何运用? 如何判断是否溢出?
14/54
1.通用寄存器---变址寄存器
变址寄存器常用于存储器寻址时提供地址 SI是源变址寄存器 DI是目的变址寄存器 SI、DI通常与数据段寄存器DS联用,用来确 定数据段中某一存储单元的地址。 串操作类指令中,SI和DI具有特别的功能, 能够自动增量和自动减量。

IBM-PC汇编语言程序设计第2章80X86计算机组织.

IBM-PC汇编语言程序设计第2章80X86计算机组织.
返回本节
第2章 80X86计算机组织
2.4.2
存储器单元的地址和内容
存储单元地址 :8086系统中,为了标识和存取每一个存储 单元,给每个存储单元规定一个编号,这就是存储单元地 址,地址从0开始编号,顺序地每次加1,用二进制表示, 书写格式为16进制。 16位二进制数可以表示多少个字节单元的地址呢? 存储单元的内容 :一个存储单元中存放的信息称为该存 储单元的内容,以字节为单位存储信息。 字节和字:
第2章 80X86计算机组织
2.3 8086CPU和寄存器组
2.3.1 2.3.2 Intel 8086CPU内部结构
8086寄存器组
2.3.3
标志寄存器
返回本章首页
第2章 80X86计算机组织
2.3.1
Intel
8086CPU内部结构
图1.2 8086CPU内部结构
图1.2 8086CPU内部结构
第2章 80X86计算机组织
2.段寄存器
8086CPU的4个16位的段寄存器分别称为代码段 寄存器 CS,数据段寄存器 DS,堆栈段寄存器 SS, 附加数据段寄存器ES。段寄存器用来确定该段在 内存中的起始地址。 代码段用来存放程序的指令序列。 CS 存放代码 段的段首址,指令指针寄存器IP指示代码段中指 令的偏移地址。
第2章 80X86计算机组织
图 1.4 表明了存储器 中部分 存储单 元存 放信息 情况。 从图 1.4可看到,地址为 34560H 的字节的存 储单元 中的内 容是 3 4 H, 而 地 址 为 34561H 的字节存储 单元中的内容是 12H。
返回本节
第2章 80X86计算机组织
2.3.3
标志寄存器
8086CPU中有一个很重要的16位标志寄存器,它 包含9个标志位,主要用于保存一条指令执行后, CPU所处状态信息及运算结果的特征。 1.条件标志 2.状态控制标志

8086汇编语言程序设计第2章+80x86计算机组织结构

8086汇编语言程序设计第2章+80x86计算机组织结构
South china normal university
c.控制总线CB 控制总线CB
控制总线是传送控制信息 控制总线是传送控制信息的。 控制信息的 CPU与内存 与内存、 CPU与内存、外设备之间的数据传送操 作为读写操作 读写操作。 作为读写操作。 读写信息就是控制信息 控制信息, 读写信息就是 控制信息 , 是通过控制 总线传送的。 总线传送的。 不同型号的CPU总线位数不同, CPU总线位数不同 不同型号的CPU总线位数不同,相应的 字长与寻址空间也不同 也不同。 字长与寻址空间也不同。
South china normal university
2.指针寄存器(SP、BP、IP) 指针寄存器(SP、BP、IP)
SP:堆栈指针寄存器, SP:堆栈指针寄存器,存放当前堆栈段栈 顶的偏移地址, ES与 SS堆栈寄存器配合 顶的偏移地址 , ES 与 SS 堆栈寄存器配合 存取堆栈中的数据。 在实模式方式(SP) (SP), 存取堆栈中的数据 。 在实模式方式 (SP) , 保护模式(ESP) (ESP)。 保护模式(ESP)。 BP: 基址指针寄存器,在间接寻址时, BP:为基址指针寄存器,在间接寻址时, 用来存放基地址, 用来存放基地址 , 是相对于堆栈段的基 地址。 地址。 IP: 指令指针寄存器, IP:为指令指针寄存器,是存放当前正在 执行的指令的下一条指令的偏移地址 下一条指令的偏移地址, 执行的指令的 下一条指令的偏移地址 , 该寄存器所指的地址为代码段的偏移地 址。
三总线的主要任务是负责CPU 三总线的主要任务是负责 CPU 与 CPU与 内存、外存、外部设备交换信息。 内存、外存、外部设备交换信息。
South china normal university
a. 数据总线DB 数据总线DB 数据总线是用来传送数据 传送数据的 数据总线是用来传送数据的。 CPU与内存 I/O设备之间通过 与内存、 CPU 与内存 、 I/O 设备之间通过 数据总线传送数据, 80x86系列 数据总线传送数据 , 80x86 系列 的数据总线有8 16位 32位 的数据总线有 8 位 、 16 位 、 32 位 64位 和64位。

第2章 80X86计算机组织

第2章 80X86计算机组织
14
CLK(Clock) 主时钟信号,输入。8086 CPU的工作时钟 频率一般为5MHz-10MHz。 Vcc电源线和GND地线 8086/8088采用单+5V电源供电。1脚 和20脚均为电源地线。
15
2.2 中央处理器
2.2.1 8086/8088 CPU的基本工作原理 2.2.2 8086/8088 CPU内部各单元功能 1.EU执行单元内部结构功能 算术逻辑运算单元ALU:组要完成8位或16位二进制 数据的算术逻辑运算功能,运算的数据可来自内部 的寄存器,也可来自存储单元或指令代码中包含的 数据(也称为立即数)。 2.BIU总线接口单元内部结构功能 标志寄存器Flags:16位的标志寄存器是用来存储数据 运算处理后的结果特征标志信息和CPU运行的状态 控制信息,
16
• • • •

• • • •

CF—进位标志位,当前运算结果的最高位是否产生进位或借位,有进位产 生CF=1,否则CF=0。 ●PF--奇偶标志位,表示本次运算结果低8位二进制数中“1”的个数的奇 偶特性,偶数个“1”时,PF=1,否则,PF=0。 ●CF—半进位标志位,本次运算结果,低4位向高4位的有进位或借位, CF=1,否则CF=0。一般用于BCD码的运算中,判断是否要十进制调整。 ●ZF—零标志位,表示本次运算结果是否是零。若结果为零,ZF=1,否 则ZF=1。 ●SF—符号标志位,表示本次运算结果最高位的状态。若最高位为1,则 SF=1,否则,SF=0。它反映了结果的正负特性。 ●OF—溢出标志位,表示对带符号的数运算时,结果是否出错的特征。若 带符号数运算,结果溢出(即出错),则OF=1,否则OF=0。 3个控制标志位用于控制CPU当前运行的一些特征,具体含义如下: ●TF—单步标志位,若TF=1,则CPU每执行完一条指令,就会自动产生 一次内部中断,使用户可以跟踪程序的运行的结果,便于调试程序。用户 可根据需要进行设置。 ●IF—中断允许标志,若IF=1,则允许INTR引脚上的中断请求,否则,即 使INTR上有中断请求信号,CPU 也不会响应。因此用户可根据需要进行 设置,以此来决定是否要响应外部设备的中断请求。 ●DF—方向标志位,用于8086 CPU在进行数据串操作时,地址指针的变 化方向。DF=1,则串操作时,地址指针朝地址减小的方向变化,否则,朝 地址增大的方向变化。 17

第二章 80X86计算机组织

第二章  80X86计算机组织

第二章汇编语言程序格式2.1 在80X86微型机的输入输出指令中,I/O端口号通常是由DX寄存器提供的,但有时也可以在指令中直接指定00~FFH的端口号,试问可直接由指令中指定的I/O端口数。

答:有256个I/O端口数2。

2 有两个16位字IEE5H和2A3CH分别存放在80X86微机存储器的000B0H和000B3H单元中,请用图表示出它们在存储器里的存放情况。

解: 000B0H E5H000B1H 1EH000B2H000B3H 3CH000B4H 2AH2.380X86微机存储器中存放信息如图2.12所示。

试读出30022H和30024H字节单元的内容,以及30022H和30024H字单元的内容。

30020H 12H30021H 34H30022H ABH30023H CDH30024H EFH答:(1)。

字节单元:(30022H)=ABH,(30024H)=EFH(2)。

字节单元:(30021H)=AB34H,(30022H)=CDABH2.4 在实模式下,段地址和偏移地址为3017:000A的存储单元的物理地址是什么?如果段地址和偏移地址是3015:002A和3010:007A呢?答:(1)。

3017:000AH的物理地址是:3017AH(2)。

3015:002AH的物理地址是:3017AH(3)。

3010:007AH的物理地址是:3017AH2.5 如果在一个程序开始执行以前(CS)=0A7FOH(如果十六进制数的最高位为字母,则应在其前加一个字的物理地址是多少?答该程序的第一个字的物理地址是:AAA40H2.6 在实模式下,存储器中每一段最多可有10000H个字节。

如果用测试程序DEBUG的r命令在终端上显示当前各寄存器的内容如下,请画出此时存储器分段的示意图,以及条件标志OF、DF、ZF、CF的值。

C>debug-rAX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=10E4 ES=10F4 SS=21F0 CS=31FF IP=0100 NV UP DI PL NZ NA PO NC 解:(1)存储器分段的示意图10E4:0000H 10E40H……10F4:0000H 10F40H……10E4:FFFFH 20E3FH……10F4:FFFFH 20F3FH……21F0:0000H 21F00H……21F0:FFFFH 31FFFH……31FF:0000H 31FF0H……31FF:FFFFH 41FEFH(2)。

汇编语言第2章80x86计算机组织

汇编语言第2章80x86计算机组织

控制标志位
• 控制标志位 :DF 方向标志,用于串处理指令处理
▪ DF位为1时,每次操作后使变址寄存器SI和 DI减量,使串处理从高地址向低地址方向处 理:
▪ 当DF位为0时,则使SI和DI增量,使串处理 从低地址向高地址方向处理:
系统标志位
• IF:中断标志。 当IF=1时,允许中断; IF=0时关闭中断
数据的宽度 • 地址总线宽度:用以确定可访问的存储器的最
大范围
地址总线宽度
• 10位:210=1024单元,1K • 20位:220=1024* 210单元=1024K,1M • 24位:224=16*1M,16M • 30位:230=1024M,1G • 32位:232=4G,即4GB
二、一些名词术语(2)
• TF:陷井标志(跟踪标志)。用于单步方式操作 • IOPL:I/O特权级。控制对I/O地址空间访问
段寄存器
• 8086/8088、80286:四个段寄存器 ▪ 代码段CS,数据段DS,堆栈段SS,附加段ES
• 80386及后继机型:六个段寄存器 ▪ 代码段CS,数据段DS,堆栈段SS,附加段ES、 FS、GS---都是16位
• ZF:零标志。运算结果为0,置1;否则置0。 • CF:进位标志。记录从最高有效位产生的进位值。
最高有效位有进位时置1,否则置0。 • AF:辅助进位标志。记录运算时第3位产生的进位
值。如第3位有进位时置1,否则置0。 • PF:奇偶标志。当结果操作数中1的个数为偶数时置
1,否则置0。
标志符号 举例
段中的某一存储单元的地址 4. SI、DI一般与DS联用:
在串处理指令中,SI和DS联用,DI和ES联用
8086系统的堆栈
• 是存储器中的特殊区域 – 在堆栈段内,“FILO” – SP始终指向栈顶,总是字操作,指示栈顶的 偏移地址; – BP可作为堆栈区中的一个基地址以便访问 堆栈中的其他信息

第2章 80x86计算机组织

第2章  80x86计算机组织

课堂练习
选择题
CPU访问的最大内存地址是1023,地址总线的 宽度是( B ) A.8 C.13 B.10 D.16
汇编语言程序设计
2.3 中央处理机
总线接口部件BIU 执行部件EU (Bus Interface Unit) (Execution Unit)
执行部件中包含算术逻 内部设有四个段地址寄存器, 算术逻辑 辑单元(ALU)、通用寄 一个指令指针寄存器IP,一 存器、状态标志寄存器、 个6字节指令队列缓冲器,20 数据暂存寄存器和执行部 位地址加法器和总线控制电 件的控制电路。 功能:从BIU的指令队列 路。 CPU 控制逻辑 中取出指令代码,经指令 主要功能:根据执行部件 译码器译码后执行指令所 EU的请求,负责从内存单元 规定的全部功能。执行指 中预取指令,并将它们送到 令所得结果或执行指令所 寄存器组 指令队列缓冲器暂存。即负 需的数据,都由EU向BIU 发出命令,对存储器或I/O 责完成CPU与存储器或I/O设 备之间的数据传送。 接口进行读/写操作。 返回本章首页
返回本节
汇编语言程序设计
各类存储器芯片
BIOS是由主板和各类接口卡(如:显 从读写属性上看分为两类: 卡、网卡等)厂商提供的软件系统, 随机存储器(RAM)和只读存储器(ROM) 可以通过它利用该硬件设备进行最基 本的输入输出。在主板和某些接口卡 从功能和连接上分类: 上插有存储相应BIOS的ROM。 – 随机存储器RAM ROM中的内容不可以被改写,断电后 不消失。 – 装有BIOS的ROM – 接口卡上的RAM
图2.1 Intel8086CPU内部结构
汇编语言程序设计
2.3.2
8086寄存器组
AX称为累加器。使用频度最高, BX称为基址寄存器。常用于存 用于算术、逻辑运算以及与外设 8086CPU中可供编程使用的有14个16位寄存器(register): CX称为计数器。一般作为循环 放存储单元地址。 传送信息等。 DX称为数据寄存器。常用来存 或串操作等指令中的隐含计数器。 放双字数据的高16位,或存放外 SP用于存放当前堆栈段中栈顶 设端口地址。 图 BP用于存放堆栈段中某一存储 的偏移地址 2 单元的偏移地址。 IP总是保存下一次将要从主存中 80 86 取出指令的偏移地址,程序不能 直接访问IP

IBM-PC汇编语言程序设计第2章 80X86计算机组织

IBM-PC汇编语言程序设计第2章 80X86计算机组织

80X86 X86计算机组织 第2章 80X86计算机组织
2.3 8086CPU和寄存器组 和寄存器组
2.3.1 2.3.2 2.3.3 Intel 8086CPU内部结构 内部结构
Байду номын сангаас
8086寄存器组 寄存器组 标志寄存器
返回本章首页
80X86 X86计算机组织 第2章 80X86计算机组织
2.3.1
返回本节
80X86 X86计算机组织 第2章 80X86计算机组织
2.4.2
存储器单元的地址和内容
系统中, 存储单元地址 :8086系统中,为了标识和存取每一个存储 系统中 单元,给每个存储单元规定一个编号, 单元,给每个存储单元规定一个编号,这就是存储单元地 地址从0开始编号 顺序地每次加1,用二进制表示, 开始编号, 址,地址从 开始编号,顺序地每次加 ,用二进制表示, 书写格式为16进制 进制。 书写格式为 进制。 16位二进制数可以表示多少个字节单元的地址呢? 位二进制数可以表示多少个字节单元的地址呢? 位二进制数可以表示多少个字节单元的地址呢 存储单元的内容 :一个存储单元中存放的信息称为该存 储单元的内容,以字节为单位存储信息。 储单元的内容,以字节为单位存储信息。 字节和字: 字节和字:
80X86 X86计算机组织 第2章 80X86计算机组织
2.4.3
物理地址的形成
8086CPU的地址线是 位的,这样最大可寻址空 的地址线是20位的 的地址线是 位的, 间应为2 间应为 20=1MB,其物理地址范围从 ,其物理地址范围从00000H~FFFFFH。 ~ 。 寄存器都是16位的 而8086CPU寄存器都是 位的。那么,这1MB空间如何 寄存器都是 位的。那么, 空间如何 用16位寄存器表达呢? 位寄存器表达呢? 位寄存器表达呢 根据要求可把1M字节地址空间划成若干逻辑段。 根据要求可把 字节地址空间划成若干逻辑段。 字节地址空间划成若干逻辑段 每个逻辑段必须满足两个条件: 每个逻辑段必须满足两个条件 : 一是逻辑段的起始地址 简称段首址)必须是16的倍数 的倍数; ( 简称段首址 ) 必须是 的倍数 ; 二是逻辑段的最大长 度为64K。按照这两个条件,1M字节地址空间最多可划 度为 。按照这两个条件, 字节地址空间最多可划 分成64K个逻辑段,最少也能划分成 个逻辑段。逻辑段 个逻辑段, 个逻辑段。 分成 个逻辑段 最少也能划分成16个逻辑段 与逻辑段可以相连,也可以不连,还可以重叠。 与逻辑段可以相连,也可以不连,还可以重叠。

80x86汇编语言程序设计 第2章 80x86计算机系统组织

80x86汇编语言程序设计 第2章 80x86计算机系统组织

2020/9/5
80x86汇编语言程序设计
1. 状态标志取值的一般规则
▪ ZF(Zero Flag):零标志。若运算结果为0,则ZF = 1,否则ZF = 0。
▪ SF(Sign Flag):符号标志。若运算结果为负数,则SF = 1,否则SF = 0。
▪ CF(Carry Flag):进位标志。若加法时结果最高位向前有进位或减法时最高位向 前有借位,则CF = 1,否则CF = 0。
第2章 80x86计算机系统组织
讲授要点
▪ 80x86计算机的基本结构(CPU、内存、I/O以及连接它们的总线)。 ▪ 80x86 CPU的寄存器组。 ▪ 实模式的内存分段与编程要点。 ▪ 标志位CF、OF、SF、ZF的含义及判断方法。
2020/9/5
80x86汇编语言程序设计
2.1 80x86计算机的基本结构
▪ 在实模式下,32位CPU下的程序可以使用32位寄存器和32位操作数,但采用32位寄 存器表示偏移地址时,只使用低16位,高16位为0。CS:IP总是指向下一条要执行的指 令,EIP的高16位为0。SS:SP指向堆栈段的栈顶,ESP的高16位为0。
▪ 状态标志是CPU进行条件判断和控制程序执行流程的依据,最常用的是4个:CF、OF、 SF和ZF。其中,CF表示无符号溢出,OF表示带符号溢出。
▪ SS:SP指向堆栈段的栈顶地址,ESP的高16位为0。
▪ 在32位80x86 CPU下,程序可以使用32位寄存器和32位操作数,但采用32位寄 存器表示偏移地址时,只使用低16位,高16位为0。
2020/9/5
80x86汇编语言程序设计
2.4 标志位
2.4.1 状态标志
▪ 状态标志通常由CPU根据指令执行结果自动设置,以反映指令执行结果的特 征。 ▪ 80x86 CPU将状态标志作为条件判断的依据,以控制程序的执行流程。 ▪ 最常用的状态标志是CF、OF、SF和ZF,应熟练掌握。

汇编_第2章 80X86计算机组织

汇编_第2章 80X86计算机组织

例1:(DS) = 2100H, (BX) = 0500H
物理地址 = 21000H + 0500H = 21500H
例2:(CS) = 3000H, (IP) = 1000H
物理地址 = 30000H + 1000H = 31000H
例3:(SS) = 1000H, (SP) = 0010H 物理地址 = 10000H + 0010H = 10010H 例4:(DS) = 3100H, (SI) = 1000H 物理地址 = 31000H + 1000H = 32000H
优点: 允许程序在存储器内重定位;
允许实模式程序在保护模式下运行;
有利于程序和数据的分离。
物理地址的形成
物理地址:每一个存储单元有一个唯一的20位地址 表示范围:00000H~FFFFFH 。 物理地址形成:段地址左移4位再加上偏移地址值
15 0 16位段地址 15 + 19 0 0 16位偏移地址 0000
≈ 1234H
4号字节单元存放的信息为 34H,表示:(0004)=34H
1EH 2FH
4号字单元的内容为1234H,表 示为:(0004)=1234H
1235H 1236H 1237H
字单元由两个字节单元组成,其地址采用它的低地 址来表示;且低位字节存入低地址单元,高位字节存入 高地址单元。
例:存储单元的地址 已知: (0004H)= 5678H
编译后的目标文 件达到3.59KB
}
用汇编语言实现同样的功能
data segment a db ? b db ? c db ? string db 'c=$' 汇编后的目 data ends 标文件只有 code segment 208字节 main proc far assume cs:code, ds:data, es:data start: push ds sub ax,ax push ax mov ax,data mov ds,ax main mov es,ax code mov a,1 mov b,2 mov al,a add al,b mov c,al lea dx,string mov ah,09 int 21h add c,30h mov dl,c mov ah,2 int 21h mov dl,0ah int 21h mov dl,0dh int 21h ret endp ends end start

汇编语言程序设计第2章80x86计算机组织

汇编语言程序设计第2章80x86计算机组织

8086/8088
OF DF IF TF SF ZF AF PF CF
80286
NT IOPL OF DF IF TF SF ZF AF PF CF
80386
VM RF NT IOPL OF DF IF TF SF ZF AF PF CF
80486
AC VM RF NT IOPL OF DF IF TF SF ZF AF PF CF
2.1 80x86 Pro 执行一条指令所 需时间的比较。(16页) 实模式、保护模式 和 虚拟模式 的区别。
工作方式
1.实地址方式 2.保护方式 3.虚拟8086方式
1.实地址方式
‫‏‬
该方式工作在开机或复位后,进入保护 方式工作之前。其主要目的是为进入保 护方式作必要配置和准备。
2.2 基于微处理器的计算机系统构成-6
文件编辑程序

用来建立、输入或修改文本。
翻译程序(汇编程序、解释程序、编译程序)(19页)

汇编程序:将汇编语言程序翻译成机器语言程序。


编译程序:将高级语言翻译成机器语言。
解释程序:将直接把高级语言在机器上运行,边解释边 执行。
经翻译程序翻译后,源程序变为 .obj 文件。
2.2 基于微处理器的计算机系统构成-7
连接程序
– 把要执行的程序与库文件或其他已经翻译好的子 程序连接在一起,形成.exe文件。
装入程序
– 用来把程序从外存传送到内存,以便机器执行。 计算机开始后需立即启动,把常驻监督程序装入 存储器,使机器运转起来。
调试程序(DEBUG)
– 系统提供给用户的能监督和控制用户程序的一种 工具,可以装入、修改、显示或逐条执行一个程 序。

汇编第二章80x86计算机组织

汇编第二章80x86计算机组织

标志位的功能—溢出标志 标志位的功能 溢出标志OF(Overflow Flag) 溢出标志 ) 表明补码的运算结果是否有溢出 表明补码的运算结果是否有溢出 补码
OF=
0 1
NV OV
没有溢出 溢出
3AH + 7CH=B6H,产生溢出:OF = 1 = ,产生溢出: AAH + 7CH=(1)26H,没有溢出:OF = 0 = ) ,没有溢出:
CS
XX XX
16 bits 偏移量
XX XX XX XX XX XX
正在执行的指令 下一条将要执行的指令
IP
3.控制寄存器 控制寄存器—FLAGS 控制寄存器
标志( 标志(Flag)用于反映指令执行结果或控 ) 制指令执行形式 8086处理器的各种标志形成了一个 位的 处理器的各种标志形成了一个16位的 处理器的各种标志形成了一个 标志寄存器FLAGS(程序状态字 标志寄存器 (程序状态字PSW寄 寄 存器) 存器)
16
输入/输出 输入 输出 控制电路
外 部 总 线
ALU
存器
部 控制电路
12 3 4 5 6
8


EU)

BIU)
1.通用寄存器 数据寄存器 通用寄存器—数据寄存器 通用寄存器
AX(Accumulator)累加器:算术运算的主要 ,所有的 累加器:算术运算的主要R 累加器
I/O指令都用此 指令都用此R 指令都用此
3AH+7CH=B6H,就是 +124=182, + = ,就是58+ = , 已经超出- ~+127范围,产生溢出,故OF=1; 范围, 已经超出-128~+ ~+ 范围 产生溢出, = ; 另一方面,补码 表达真值是-74, 另一方面,补码B6H表达真值是 , 表达真值是 显然运算结果也不正确

第二章 80X86计算机组织

第二章 80X86计算机组织

本科程以80X86微处理器为例讲解汇编语言程序设计基本概念、原理、方法
6/73
Intel公司处理器系列
1971年,设计了第 年,设计了第一片 片4位微处理器Intel 4004, 随之又设 计生产了8位微处理器8008 1973年推出了8080;1974年基于8080的个人计算机 (PC)问世 1977 19 年Intel推出了8085 808 自此之后,又陆续推出了8086、80286、80386、80486、 Pentium、XEON、EMT’64、Itanium2、多核等80X86 系列微处理器
2/73
计算机结构
• 以存储器为中心的计算机结构
控制器
计算机系统主要由存 储器、运算器+控制 器、输入设备和输出 设备构成
数据 输入设备 程序 运算器 算 存储器 输出设备
计算 结果

现代计算机硬件组成
主机
运算器
CPU
ALU CU 主存 辅存
主 存
控制器
CPU 主机 硬件 I/O
3/73
ALU CU

由80X86微处理器芯片构成的微机称为X86微机 另外还有AMD公司微处理器系列、IBM公司POWERPC、SUN公司SPARC等 各种CPU系列有自己的机器指令系列,互不兼容

C,PASCAL,FORTRAN,JAVA等高级语言,兼容,因为通过编译转换为对应的机器指令 , , 汇编语言,不兼容,但汇编语言程序设计方法通用,助记符、程序结构大体相同
18/73
(3)虚拟86模式
虚拟86模式以任务形式在保护模式下执行 在CPU上可以同时支持由多个真正的CPU任务和 多个虚拟86任务 在虚拟86模式下,CPU支持任务切换和内存分页

第2章 80X86计算机组织

第2章   80X86计算机组织

24
逻辑段的起始地址必须是16的倍数,所以其20位物理 地址用16进制表示时最低位为0。 1M的内存空间最多有64K个小段,每个小段包含16 个字节,首地址最低位为0(用16进制表示)。 寄存器是16位,用16位寄存器如何表示20位的物理 地址? 20位的物理地址由段的起始地址和偏移地址(有效 地址)组成。段地址的高16位存放在16位段寄存器中,低 4位为0000,可以不用保存,偏移地址存放在16位通用或 专用寄存器中。 存储单元地址通常表示为:16位段地址:16位偏移地 址 物理地址=16*(段地址寄存器)+偏移地址。 一般都用16进制表示。 例:2000H:1234H的物理地址为多少?
3

2.1.2

汇编语言
为了克服机器语言的缺点,人们采用助记符表 示机器指令的操作码,用变量代替操作数的存放 地址等,这样就形成了汇编语言。所以汇编语言 是一种用符号书写的、基本操作与机器指令相对 应的、并遵循一定语法规则的计算机语言。
用汇编语言编写的程序称为汇编源程序。 汇编语言是一种符号语言,比机器语言容易理解 和掌握,也容易调试和维护。但是,汇编语言源 程序要翻译成机器语言程序才可以由计算机执行。 这个翻译的过程称为“汇编”,这种把汇编源程 序翻译成目标程序的语言加工程序称为汇编程序。
17
数据段用来存放程序中用到的数据,DS 与BX、DI、SI 或16位数表示数据存放的 存储单元的物理地址。 堆栈段是一个特殊的存储区域,采用先进 后出或后进先出的原则,SS与SP表示堆 栈栈顶的物理地址,SS与BP表示堆栈中 某一单元的物理地址。 附加段是一个附加的数据段,常用于字符 串的处理。ES与DI表示附加段中存储单 元的物理地址。 18
存放操作数、操作数的地址以及运算的中间结果

IBM—PC(80x86)汇编语言与接口技术-第2章 80x86计算机组织

IBM—PC(80x86)汇编语言与接口技术-第2章 80x86计算机组织

• 80386是1985年研制出的一个32位微处理器, 内部及外部数据总线均为32位,地址线也为32 位,因此它可处理4G(232)字节的物理存储 空间。
• 1989年Intel公司又研制出新一代的微处理器 80486,80486芯片内除了有一个与80386相同 结构的主处理器外,还集成了一个浮点处理部 件FPU以及一个8K字节的高速缓冲存储器 (cache),使80486的计算速度和总体性能比 80386有了明显的提高。
• Intel公司在1982年推出了80286微处理器,它仍 然是16位结构。80286的内部及外部数据总线都 是16位的,但它的地址线是24位的,可寻址16M 字节的存储空间。
80286有两种工作方式,即实模式和保护模式: 实模式与8086工作方式相同,但速度比8086快。
保护模式除了仍具有16M字节的存储器物理地址空 间外,她还能为每个任务提供1G字节的虚拟存储 器地址空间。保护方式把操作系统及各任务所分配 到的地址空间隔离开,避免程序之间的相互干扰, 保证系统在多任务环境下正常工作。
• 8086是1978年Intel公司推出的16位微处理器。
(1)8086有16位数据总线,处理器与外部传送数据 时,一次可传送16位二进制数。
(2)8086有20位地址总线,寻址空间提高到1M字节。
(3)8086采用了流水线技术,可以实现处理器的内 部操作与存储器或I/O接口之间的数据传送操作重叠 进行,从而提高了处理器的性能。
2.2 基于微处理器的 计算机系统的构成
硬件:
中央处理机 CPU
总线控制 逻辑 系 统 总 线
存储器
接口
...
接口
大容量 存储器
...
I/O设备
I/O子系统

汇编语言第2章 计算机组织结构

汇编语言第2章 计算机组织结构

数据寄存器 指针寄存器
变址寄存器 控制寄存器 通用寄存器
段寄存器
FS
一个完整程序例子 第2章 DATA SEGMENT X DB 3 Y DB 5 Z DB ? DATA ENDS
CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX MOV AL,X ADD AL,Y MOV Z,AL MOV AH,4CH INT 21H CODE ENDS END START

第2章
变址及指针寄存器
变址寄存器常用于存储器寻址时提供地址
ESI是源变址寄存器 EDI是目的变址寄存器 指针寄存器用于寻址内存堆栈内的数据 ESP 为堆栈指针寄存器,指示栈顶的偏移地址, 不能再用于其他目的,具有专用目的 EBP 为基址指针寄存器,表示数据在堆栈段中 的基地址 ESI和EDI在串操作指令有特殊用法 ESP 和 EBP 寄存器与 SS 段寄存器联合使用确定堆栈 段中的存储单元地址
8位
12 3 4 5 6 指令队列缓冲器
执行部件 (EU)
总线接口部件 (BIU)
第2章
31 EAX EBX ECX EDX ESP EBP ESI EDI EIP
EFLAGS
80X86的寄存器组
16 15 8 7 AH BH CH DH SP BP SI DI IP FLAGS CS DS SS ES 0 AL BL CL DL
第2章
零标 1;
否则ZF = 0
注意:ZF为1表示运算结果是0
MOV AL,3AH ADD AL,7CH
;3AH + 7CH=B6H,结果不是零:ZF = 0
MOV AX,9B6FH XOR AX,AX ;ZF=?作用?

汇编语言程序设计第2章 80 x86计算机组织结构.ppt

汇编语言程序设计第2章 80 x86计算机组织结构.ppt
传送地址,内存中的每个字节都对应着一个唯一 的地址,I/O设备也是如此。 地址总线的位数与寻址空间有着直接的关系。 例如:8086/8088地址总线20根,则可访问的地址 为:
220 =1,048,576 = 1M
则8086/8088最大可用的存储空间为1M字节。
South china normal university
• 存储器由若干存储单元构成,存储单元的最小 单位是字节。
• 将所有的存储单元按顺序编号,即每一个字 节有一个唯一的编号,这些编号称为存储单 元的地址(也称为物理地址)。
South china normal university
• 若CPU要存取某个存储单元的内 容,则首先提供该存储单元的 地址,然后按地址选中对应的 存储单元,就可以对单元内容 进行存取操作。
外部设备
在微机系统中最常用的外部设备有: • 键盘 • 显示器 • 打印机 • 外部存储器等
CPU与外部设备交换信息是通过I/O接口电 路来完成的。
South china normal university
2.2 80X86CPU的寄存器 通用寄存器 控制寄存器 段寄存器
South china normal university
South china normal university
• IBM PC机及其 兼容机的存储 器系统主要分 为3个主要部 分:程序暂驻 区 (TPA) 、 系 统内存区和扩 展 存 储 区 (XMS)
South china normal university 图2-2 IBM PC机及其兼容机的存储器映像
South china normal university
1. 数据寄存器 (AX、BX、CX、DX)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PPT文档演模板
汇编语言第2章80x86计算机组织
工作方式
(1)实模式:段寄存器保护实际的段地址,但 只限于1M的寻址
(2)保护模式:有更大寻址能力,使用各种表 格,段的实际地址放在描述符表中,使用段选 择器
(3)虚拟模式:提供比主存更大的空间,程序 可放在外存上,执行时调入,模拟多个CPU
PPT文档演模板
• 寄存器:可见寄存器、不可见寄存器 • 可见寄存器:
1. 通用寄存器 2. 专用寄存器 3. 段寄存器
PPT文档演模板
汇编语言第2章80x86计算机组织
通用寄存器(1)
• 8086/8088、80286:
➢数据寄存器:AX,BX,CX,DX,16位 可作8位寄存器用:AH,AL,DH,DL等
➢变址寄存器:SP,BP,SI,DI,16位
IBM PC微型计算机结构(续)
PPT文档演模板
汇编语言第2章80x86计算机组织
功能部件
• 存储器:计算机的记忆部件 • 中央处理机:包括运算器和控制器 • 运算器:执行算术和逻辑运算指令 • 控制器:负责全机的控制工作,如取指令、译
码、分析、取数、执行、存数 • I/O系统:I/O设备、大容量存储器 • 系统总线:数据线、地址线和控制线三组
汇编语言第2章80x86计算机组织
地址总线宽度
• 10位:210=1024单元,1K • 20位:220=1024* 210单元=1024K,1M • 24位:224=16*1M,16M • 30位:230=1024M,1G • 32位:232=4G,即4GB
PPT文档演模板
汇编语言第2章80x86计算机组织
PPT文档演模板
汇编语言第2章80x86计算机组织
系统标志位
• IF:中断标志。 当IF=1时,允许中断; IF=0时关闭中断
• TF:陷井标志(跟踪标志)。用于单步方式操作 • IOPL:I/O特权级。控制对I/O地址空间访问
PPT文档演模板
汇编语言第2章80x86计算机组织
段寄存器
• 8086/8088、80286:四个段寄存器 ▪ 代码段CS,数据段DS,堆栈段SS,附加段ES
PPT文档演模板
汇编语言第2章80x86计算机组织
其它软件(2)
• 连接程序:程序、库文件或其他已翻译的子程 序连接在一起,形成机器可执行程序
• 装入程序:把程序从外存送到内存 • 调试程序:
➢ 系统带的调试程序Debug:举例 ➢ Turbo Debug程序:Tdebug
➢Masm for windows集成实验环境
PPT文档演模板
汇编语言第2章算机组织
2.2.2 软 件
• 计算机软件:系统软件、用户软件
系统软件: 用户软件:
• 操作系统:主要部分是常驻监督程序 • I/O驱动程序:对I/O设备进行控制或管理
PPT文档演模板
汇编语言第2章80x86计算机组织
计算机软件层次图
PPT文档演模板
汇编语言第2章80x86计算机组织
汇编语言第2章80x86计算机组织
2.2 基于微处理器的计算机系统
PPT文档演模板
汇编语言第2章80x86计算机组织
计算机系统
计算机系统包括硬件和软件两部分: 1.硬件: 2.软件:
PPT文档演模板
汇编语言第2章80x86计算机组织
2.2.1 硬件
• 计算机总体结构图:
PPT文档演模板
汇编语言第2章80x86计算机组织
PPT文档演模板
汇编语言第2章80x86计算机组织
寄存器概况
PPT文档演模板
汇编语言第2章80x86计算机组织
数据寄存器的用途
• AX:作累加器,算术运算主要寄存器;在I/O 时用AX与外部设备传送信息
• BX:在计算存储器地址时,常作基址寄存器 • CX:作计数器 • DX:作双字长运算时把DX和AX组合存放一
变址寄存器的用途
1. 可象数据寄存器一样在运算过程中存放操作 数;
2. 在段内寻址时提供偏移地址 3. SP、BP都可以与SS寄存器联用来确定堆栈
段中的某一存储单元的地址 4. SI、DI一般与DS联用:
在串处理指令中,SI和DS联用,DI和ES联用
PPT文档演模板
汇编语言第2章80x86计算机组织
8086系统的堆栈
• 是存储器中的特殊区域 – 在堆栈段内,“FILO” – SP始终指向栈顶,总是字操作,指示栈顶的 偏移地址; – BP可作为堆栈区中的一个基地址以便访问 堆栈中的其他信息
– 栈底设在高地址区、堆栈地址由高向低增长 (象一个有底的桶)
– 存放断点或暂存数据
PPT文档演模板
汇编语言第2章80x86计算机组织
2.1 80x86微处理器
一、80x86是美国Intel公司的微处理器系列 1969:4040芯片、4位 1973:8080芯片、8位 1978:8086芯片、DB16位, AB20位,29000个
晶体管 1979:8088芯片、16位 1982:80286芯片、16位 1986:80386芯片、32位 …Pentium系列
值。如第3位有进位时置1,否则置0。 • PF:奇偶标志。当结果操作数中1的个数为偶数时置
1,否则置0。
PPT文档演模板
汇编语言第2章80x86计算机组织
标志符号 举例
标志名
OF 溢出(是/否) DF 方向(减量/增量) IF 中断(允许/关闭) SF 符号(负/正) ZF 零(是/否) AF 辅助进位(是/否) PF 奇偶(偶/奇) CF 进位(是/否)
• FEH-FFH 0 1 0 1 1 1 FFH
PPT文档演模板
汇编语言第2章80x86计算机组织
控制标志位
• 控制标志位 :DF 方向标志,用于串处理指令处理
▪ DF位为1时,每次操作后使变址寄存器SI和 DI减量,使串处理从高地址向低地址方向处 理:
▪ 当DF位为0时,则使SI和DI增量,使串处理 从低地址向高地址方向处理:
条件码标志
• OF:溢出标志。运算时如操作数超出机器表示范围 称为溢出。此时OF位置1;否则置0。
• SF:符号标志。记录运算结果的符号,结果为负时 置1,否则置0。
• ZF:零标志。运算结果为0,置1;否则置0。 • CF:进位标志。记录从最高有效位产生的进位值。
最高有效位有进位时置1,否则置0。 • AF:辅助进位标志。记录运算时第3位产生的进位
程序状态字寄存器
• 8086/8088、80286:

•N T
• •IOP•L
•0 F
•D F
•IF
•T F
•S F
•Z F

•A • F
•P • F
•C F
• 条件码标志:
OF、SF、ZF、CF、AF、PF
• 控制标志位:DF
• 系统标志位:TF、IF、IOPL(80286)
PPT文档演模板
汇编语言第2章80x86计算机组织
PPT文档演模板
汇编语言第2章80x86计算机组织
二、一些名词术语(1)
• 主频:主时钟频率,影响运行计算机速度 • 数据总线:负责各部分间的数据传送
数据总线宽度:芯片内传送数据的宽度 外部数据总线宽度:芯片内和芯片外交换
数据的宽度 • 地址总线宽度:用以确定可访问的存储器的最
大范围
PPT文档演模板
PPT文档演模板
汇编语言第2章80x86计算机组织
2.3 中央处理机
2.3.1 中央处理机CPU的组成 2.3.2 8086/8088的寄存器组
PPT文档演模板
汇编语言第2章80x86计算机组织
2.3.1 中央处理机CPU的组成
CPU由三部分组成: 1. 算术逻辑部件ALU:用来进行算术和逻辑运
• FLAGS:程序状态字寄存器PSW。放条件码 标志、控制标志、系统标志
PPT文档演模板
汇编语言第2章80x86计算机组织
专用寄存器(2)
• 80386及后继机型: • EIP、ESP、EFLAGS—32位 • 与IP、SP、FLAGS—16位的作用相同
PPT文档演模板
汇编语言第2章80x86计算机组织
• 80386及后继机型:六个段寄存器 ▪ 代码段CS,数据段DS,堆栈段SS,附加段ES、 FS、GS---都是16位
• 举例:
PPT文档演模板
汇编语言第2章80x86计算机组织
2.4 存储器
• 2.4.1 存储单元的地址和内容 • 2.4.2 实模式存储器寻址 • 2.4.3 保护模式存储器寻址
个双字长数;在I/O时,DX可用来存放I/O的 端口地址
PPT文档演模板
汇编语言第2章80x86计算机组织
SP、BP、SI、DI
• SP:堆栈指针寄存器。
12 34
• BP:基址指针寄存器
56
78
• SI:源变址寄存器
9A
• DI:目的变址寄存器
BC
DE
F0
PPT文档演模板
汇编语言第2章80x86计算机组织
PPT文档演模板
汇编语言第2章80x86计算机组织
2.4.1 存储单元的地址和内容
1. 位、字节和字
1) 位:计算机存储信息的基本单位,存储二进 制数:0或1。
2) 字节:每8位组成一个字节,在存储器里以 字节单位存储。
3) 字长:8086/8088、80286字长为16位,由2个 字节组成;80386字长为32位,由4个字节组 成,双字
➢变址寄存器:ESP、EBP、ESI、EDI,32位 ➢每个的专用属性与8086/8088、80286的寄存
器一一对应
PPT文档演模板
相关文档
最新文档