汇编语言程序设计第2章80x86计算机组织
IBM-PC汇编语言程序设计第二版第2章
优点: 允许程序在存储器内重定位; 允许实模式程序在保护模式下运行; 有利于程序和数据的分离。
物理地址 = 16 段地址 + 偏移地址
16 位 段 地 址
0000
16 位 偏 移 地 址
+
20 位 物 理 地 址
例:(DS) = 2100H, (BX) = 0500H (PA) = 21000H+0500H = 21500H
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
存储器的逻辑地址与物理地址
逻辑地址
物理地址
段地址 : 偏移地址
1000 : 0000H
1000 : 0001H 1000 : 0002H 1000 : 0003H
1000 : 0004H 1000 : 0005H
10011111 00100110 01001000
10000011 01011100 10100010
VIP:虚拟中断未决标志 VIF:虚拟中断标志 VM:虚拟8086模式位
保护模式下的80x86
支持多任务处理功能 支持虚拟存储器特性
存储器
段基地址32
逻辑地址
选择器 16
偏移地址 32
所选存储单元
所选段
描 述 符64
描述符表
保护模式下的存储器寻址
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计算机组织结构
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计算机组织
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计算机组织
第二章汇编语言程序格式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. 存储器地址
• 存储器地址 – 分配给每一个字节单元的编号。地址从0开始 编号,顺序地每次加1 – 每一个字节单元有唯一一个地址:物理地址
• 8086/8088: – 20位,地址范围应该是00000H~FFFFFH
▪ ASM:小汇编程序,它占有较小的存储区, 功能较弱
▪ MASM:宏汇编程序,功能较强,具有宏汇 编能力
▪ Masm for windows集成实验环境
其它软件(2)
• 连接程序:程序、库文件或其他已翻译的子程 序连接在一起,形成机器可执行程序
• 装入程序:把程序从外存送到内存 • 调试程序:
➢ 系统带的调试程序Debug:举例 ➢ Turbo Debug程序:Tdebug
晶体管 1979:8088芯片、16位 1982:80286芯片、16位 1986:80386芯片、32位 …Pentium系列
二、一些名词术语(1)
• 主频:主时钟频率,影响运行计算机速度 • 数据总线:负责各部分间的数据传送
数据总线宽度:芯片内传送数据的宽度 外部数据总线宽度:芯片内和芯片外交换
IBM PC微型计算机结构(续)
功能部件
• 存储器:计算机的记忆部件 • 中央处理机:包括运算器和控制器 • 运算器:执行算术和逻辑运算指令 • 控制器:负责全机的控制工作,如取指令、译
码、分析、取数、执行、存数 • I/O系统:I/O设备、大容量存储器 • 系统总线:数据线、地址线和控制线三组
① 58H+63H ② 80H+90H ③ FFH+FEH ④ 38H+2BH ⑤ 9CH-45H ⑥ FEH-FFH
第2章 8086计算机组织
第二章80X86计算机组织80X86微处理器系列是美国Intel公司从20世纪70年代开始研制的微处理器的总称。
本章首先介绍80X86微处理器的发展概况,然后简要说明基于微处理器8086的计算机系统构成,最后将根据汇编语言编程的需要分节介绍8086微处理器的基本组成、8086寄存器组、存储器和外部设备。
2.1 80x86微处理器80X86微处理器系列是美国Intel公司从20世纪70年代开始研制的微处理器的总称。
我们先简单介绍80X86微处理器的发展概况,然后简要说明基于微处理器8086的计算机系统构成,最后将根据汇编语言编程的需要分节介绍8086微处理器的基本组成、8086寄存器组、存储器和外部设备。
1.从8080/8085到80868086是1978年Intel公司推出的16位微处理器。
与其前一代8位微处理器8080/8085相比,8086有如下几点进步:(1)8086有16位数据总线,处理器与外部传送数据时,一次可传送16位二进制数,而8080/8085一次只能传送8位。
(2)8086的寻址空间从8080/8085的64K字节提高到1M字节。
(3)8086采用了流水线技术,而8080/8085是非流水线结构。
在一个具有流水线结构处理器的系统中,可以实现处理器的内部操作与存储器或I/O接口之间的数据传送操作重叠进行,从而提高了处理器的性能。
2.从8086到80888086的内部寄存器、功能部件、数据通路以及对外的数据总线均为16位宽度,它的出现是计算机技术上一个很大的进步。
但是,当时已有的微处理器外围配套芯片的数据总线都是8位的,为了使用这些8位的外围芯片组成系统,Intel公司又推出了8088微处理器。
8088的内部结构与8086基本相同,也提供16位的处理能力,但对外的数据总线设计成8位。
1981年IBM公司选择8088微处理器作为核心来设计IBM PC微计算机系统,推向市场后获得了巨大的成功,为后来的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
汇编语言程序设计第2章
19
• 1.实模式寻址 ——允许的最大寻址空间:1MB 地址范围 00000H ~ FFFFFH (1MB) A.存储器划分成段。段大小:0~64KB。 B.从0地址开始,每16B为一小段。 C.段的起始地址必须以小段的首地址开 始。——16进制表示的地址,最低位为0。 D.每个存储单元都有1个唯一的20位物理地 址。
20
• 1.实模式寻址 物理地址=段地址左移4位+偏移地址
15 0
16 位 段 地 址
15
0 0 0 0
0
+
19
16 位 偏 移 地 址
0
20 位 物 理 地 址
例如:段地址:1004H
偏移地址:0014H
物理地址=10040H+0014H=10054H
21
存储器的逻辑分段 存储器的逻辑分段: 逻辑分段:
11
80x86的标志寄存器 的标志寄存器
8086/8088
(P.23)
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
10000H 10001H 10002H 10003H 10004H 10005H
字节内容(10000H)=9FH;(10001H)=26H 字内容 (10000H)=269FH;(10001H)=4826H
访问两次内存
18
存储器寻址
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计算机组织
例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
汇编第二章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表达真值是 , 表达真值是 显然运算结果也不正确
第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
存放操作数、操作数的地址以及运算的中间结果
第2章 80x86计算机组织
例: MOV AX, FFFFH MOV BX, 1 ADD AX, BX 指令执行后,(AX)=0, OF=0, CF=1, ZF=1, SF=0
10
2.4 2.4 存储器
存储器是用来存放程序、数据、中间结果和最终结 果的记忆装置。 • 存储单元的地址和内容
存储器以字节(8bit)为单位存储信息 每个字节单元有一个地址,从0编号,顺序加1 地址也用二进制数表示(无符号整数,写成十六进制) 16位二进制数可表示216=65536=64K个地址 0000H ~ FFFFH 字长16位,一个字要占用相继的两个字节 低位字节存入低地址,高位字节存入高地址 机器以偶地址访问(读/写)存储器 8086访问内存是以字为单位,字单元地址用它的低地址 来表示
18
第2章 作业
Page 33
2.2 ~ 2.5
19
11
存储器
7 字节 1 0 0 1 6 0 0 0 1 5 0 1 0 0 4 1 0 1 1 3 1 0 1 0 2 1 1 1 1 1 1 1 1 1 0 1 0 0 1 0000H 0001H 0002H 0003H (0000H)=9FH (0001H)=26H (0002H)=1EH (0003H)=D7H
在CPU外部 访问速度慢 容量大,成本低 用地址表示 地址可用各种方式形成
16
2.5 2.5 外部设备
外部设备与主机(CPU和存储器)的通信是通过外设 接口(Interface)进行的,每个接口包括一组寄存器。 数据寄存器:存放外设和主机间传送的数据 状态寄存器:保存外设或接口的状态信息 命令寄存器:保存CPU发给外设或接口的控制命令 外设中每个寄存器有一个端口(Port)地址,构成一个 独立于内存的I/O地址空间:0000H ~ FFFFH
IBM-PC汇编语言程序设计第二版第2章
小段:每16个字节为一小段,共有64K个小段
小段的首地址 00000 H ~ 0000F H 00010 H ~ 0001F H 00020 H ~ 0002F H … FFFF0 H ~ FFFFF H
段起始地址:小段首地址 段的大小: 64K 范围内的任意字节
CS 0200H DS 0400H SS 0480H
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章 80x86计算机组织
• 计算机系统 • 存储器 • 中央处理机 • 外部设备
1. 计算机系统
硬件:
中央处理机 CPU
总线控制 逻辑 线系 统 总
存储器
接口
...
接口
大容量 存储器
...
I/O设备
I/O子系统
软件:系统软件 用户软件
2. 存储器
存储单元的地址和内容:
存储器以字节(8 bit)为编程单位 每个字节单元都有唯一的地址编码 地址用无符号整数来表示(编程用十六进制表示) 一个字要占用相继的两个字节 低位字节存入低地址,高位字节存入高地址 字单元地址用它的低地址来表示 机器以偶地址访问(读 / 写)存储器
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
条件码标志:
汇编语言程序设计第2章 80 x86计算机组织结构.ppt
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)
第二章 80X86计算机组织
2013-7-25
河南师范大学计算机与信息技术学院
12
IBM-PC 汇编语言程序设计
2.2.1
外部设备
硬件
各种外部设备都有以上三种类型的寄存器,只是每个接口所配 备的寄存器数量是根据设备的需要确定的。 为了区别这些寄存器,各个寄存器进行了编号,形成I/O地址, 通常被称作I/O端口(Port)。这样就组成了一个独立于内存储器的 I/O地址空间。 实际上,系统就是通过这些端口与外设进行通信的。
在微型计算机中,CPU由一个大规模集成电路芯片构成,被称为微处理 器(Microprocessor)。
2013-7-25
河南师范大学计算机与信息技术学院
8
IBM-PC 汇编语言程序设计
2.2.1
中央处理单元
硬件
运算器执行所有的算术和逻辑运算。
控制器负责把指令逐条从存储器中取出,经译码分析后向机器发出 各种控制命令。
23
IBM-PC 汇编语言程序设计
2.3
中央处理机
1
中央处理机CPU的组成
2
80X86寄存器组
2013-7-25
河南师范大学计算机与信息技术学院
24
IBM-PC 汇编语言程序设计
地址加法器
2.3.1 中央处理机CPU的组成 AH AL 通用寄存器
BH CH DH BL CL DL SP BP SI DI
2013-7-25
河南师范大学计算机与信息技术学院
19
IBM-PC 汇编语言程序设计
进行汇编语言程序设计所需要的软件
系统软件
DOS平台 Windows的虚拟MS-DOS环境
应用软件
文本编辑器:用来录入、修改源程序。常用的有: DOS的EDIT全屏幕编辑器;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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)
– 系统提供给用户的能监督和控制用户程序的一种 工具,可以装入、修改、显示或逐条执行一个程 序。
2.3 中央处理机-6
专用寄存器
– IP 指令指针寄存器 (22页) IP总是与CS段寄存器配合指出下一条要执 行指令的地址,其中存放偏移量部分。 – SP 堆栈指针寄存器 – FLAGS 标志寄存器(程序状态寄存器) (22-24页)
标志寄存器 ( FLAGS / PSW )
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
存储器 (17页) 记忆部件,存放程序、数据、信息及中间结 果。 中央处理机:
运算器 控制器
I/O子系统
I/O设备 大容量存储器
2.2 基于微处理器的计算机系统构成-3
除必要的系统程序外,一般程序存放在 外存中,只要当运行时,才把它调入内 存。 系统总线 (18页) 片内总线、系统总线 和 外部总线。
2.1 80x86 微处理器-4
为了使存储器与运算器的速度相匹配,建立 了层次结构的存储器组织:(16页) Cache 主存(内存) 外存(辅存) 早期的Cache做在芯片之外,从386开始在 芯片中做入少量的Cache,486中集成了 8KB,Pentium中有8KB的指令高速缓存和 8KB的数据高速缓存, Pentium Pro 在以 上基础上又增加了256KB的二级缓存, Pentium Ⅱ 中有32KB的高速缓存和 512KB的二级高速缓存。
在DEBUG下查看 TF
-t AX=3202 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=13FD ES=13FD SS=13FD CS=13FD IP=0102 NV UP EI PL NZ NA PO NC 13FD:0102 0000 ADD [BX+SI],AL DS:0000=CD 看出来TF=0 AX=3202 0011,001 0 ,0000,0010 TF
80x86的寄存器结构
31
EAX EBX ECX EDX ESP EBP ESI EDI EIP EFLAGS
16 15
AH BH CH DH
8 7
AX BX CX DX SP BP SI DI IP FLAGS CS DS SS ES FS GS AL BL CL DL
0
8086 / 8088 / 80286
2.3 中央处理机-7
段寄存器 (24页)
– CS 代码段寄存器 – DS 数据段寄存器 – SS 堆栈段寄存器 – ES 附加段寄存器
2. 4 存储器
寄存器与存储器的比较:
寄 存 器
在CPU内部 访问速度快
存 储 器
在CPU外部 访问速度慢
容量小,成本高
用名字表示 没有地址
容量大,成本低
用地址表示 地址可用各种方式形成
2.2 基于微处理器的计算机系统构成-5
I/O驱动程序
– 对I/O设备进行控制和管理,当系统程序或用户 程序使用I/O设备时,就调用它对设备发出命令, 完成CPU和I/O设备的数据传输。
文件管理程序
– 用来处理存储在外存中的大量信息,它可以和外 存的设备驱动程序相连接,对存储在其中的信息 以文件的形式进行存取、复制及其他管理操作。
寄 存 器
80x86的程序可见寄存器组
通用寄存器 专用寄存器 段寄存器
位 EAX EBX ECX EDX ESP EBP ESI EDI EIP FLAGS
31
16 15
87
0
(AH)AX (AL) (BH) BX (BL) 数据寄存器 (CH) CX (CL) (DH) DX (DL) SP BP SI DI IP FLAGS CS SS DS ES FS GS 堆栈指针 指针寄存器 基址指针 源变址 变址寄存器 目的变址 指令指针 控制寄存器 标志 代码段寄存器 堆栈段寄存器 数据段寄存器 附加段寄存器 段寄存器 通 用 寄 存 器
Intel 64处理器
Intel 8086
酷睿多核系列 奔腾多核系列
奔腾4 奔腾III 奔腾II 奔腾 80486 80386 IA-32处理器
80286 8086 4004 16位80x86处理器
3
2.1 80x86 微处理器-2
理解下面一些名词术语:
主频 数据总线 数据总线宽度 地址总线宽度 地址总线宽度 与 寻址空间 的关系 (16页)
2.3 中央处理机-5
8086~80286CPU各有8个16位通用寄存器AX、 BX、CX、DX、SP、BP、SI、DI。对于4个16 位数据寄存器AX、BX、CX、DX。 其每个又可以作为2个独立的8位寄存器使用, 它们被分别命名为AH、AL、BH、BL、CH、 CL、DH、DL。 80386以上型号的CPU各有8个32位通用寄存 器,它们是相应16位寄存器的扩展,被分别 命名为EAX、EBX、ECX、EDX、ESP、 EBP、 ESI、EDI。在程序中每个8位、16位、 32位寄存器都可以独立使用。
第2章 80x86计算机组织
计算机系统
存储器
中央处理机
外部设备
2.1 80x86 微处理器-1
计算机主要有运算器、控制器、存 储器和输入输出设备构成。 20世纪70年代初期,运算器和控制 器集成在一个芯片上,构成中央处 理机。 表2.1 80x86微处理器概况(15页)
1.1 英特尔80x86处理器
实地址方式的特点
①
② ③ ④
寻址机制、存储器管理、中断处理机制和8086 一样。 操作数默认长度16位。 存储器容量1M,分段管理,每段64K。 存储器两端各一个固定区域。 一个中断向量表0000:0000~0000:00FF 一个自举入口程序FFFF:0000~FFFF:000F
保护方式
2. 4 存储器
2.4.1 存储单元的地址和内容:(P.24-P.25) 存储器以字节(8 bit)为编程单位 每个字节单元都有唯一的地址编码 地址用无符号整数来表示(编程用十六进制 表示) 一个字要占用相继的两个字节 低位字节存入低地址,高位字节存入高地址 字单元地址用它的低地址来表示 机器以偶地址访问(读 / 写)存储器
在DEBUG下查看 TF
-a 100 13FD:0100 pushf 13FD:0101 pop ax 13FD:0102 -t AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEC BP=0000 SI=0000 DI=0000 DS=13FD ES=13FD SS=13FD CS=13FD IP=0101 NV UP EI PL NZ NA PO NC 13FD:0101 58 POP AX
OF DF IF TF SF ZF
AF
PF
CF
条件码标志:
OF SF ZF CF AF PF 溢出标志 符号标志 零标志 进位标志 辅助进位标志 奇偶标志
控制标志:
DF IF TF 方向标志 中断标志 陷阱标志 AX, BX
例:ADD
JO / JC ERROR ?
80x86的标志寄存器 (P.23)
VIP:虚拟中断未决标志 VIF:虚拟中断标志 VM:虚拟8086模式位
状态标志位的符号表示
标志位 CF进位(有/否) PF奇偶(偶/奇) AF半进位 ZF全零(是/否) SF符号(负/正) IF中断(允许/禁止) DF方向(增量/减量) OF溢出(是/否) 标志为1 CY PE AC ZR NG EI DN OV 标志为0 NC PO NA NZ PL DI UP NV
2.3 中央处理机-1
2.3.1 中央处理机CPU的组成(19页) CPU中的高速缓存虽然在片内,但就功 能而言还是属于存储器的。 CPU主要有以下三部分组成:
– 算术逻辑部件 – 控制逻辑 – 工作寄存器组