第2章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计算机组织
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具有特别的功能, 能够自动增量和自动减量。
第2章80x86计算机组织
第2章 微型计算机概论
状态标志寄存器F
8086 CPU的状态标志寄存器是一个16位的寄存 器,9个位用作标志位,其中状态标志位有6个,控 制标志有3个。状态标志用来反映EU执行算术或逻 辑运算以后的结果特征。这六位都是逻辑值,判断 结果为逻辑真(true)时其值为1;判断结果为逻 辑假(false)时,其值为0。
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
8086有20根地址线,具有220=1M字节的存储 器地址空间。内存单元按照00000H~FFFFFH来编 址。
第2章 微型计算机概论
存储器的分段
8086存储器操作采用了典型的存储器分 段技术,对存储器的寻址操作不是直接 用20位的物理地址,而是采用段地址加 段内偏移地址的二级寻址方式。 物理地址=段基址×10H+偏移地址 =(段基址左移4 位+偏移地址)
第2章 微型计算机概论
*2.2.4 微型计算机的结构
1.微型计算机的结构采用的是总线结构
第2章 微型计算机概论
*2.总线结构的概念
总线是传输信号的一组导线,作为微机各部件之间信息传输 的公共通道。 微处理器通过系统总线实现和其他组成部分的联系。 微机的系统总线按功能分成三组: 数据总线 DB:是传输数据或代码的一组通信线,其宽度(总 线的根数)一般与微处理器的字长相等。 地址总线 AB:是传输地址信息的一组通信线,是微处理器访 问外界用于寻址的总线。AB总线是单向的,其根数决定了可以 直接寻址的范围。 控制总线 CB:是传送各种控制信号的一组通信线。控制信号 是微处理器和其他芯片间相互联络或控制用的。
第二章 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)。
第二章 80x86计算机组织
3、每个字节单元中存放的信息称为该存储单元 的内容,可以表示数据、程序指令,也可表示 地址值。例如(0004)=78H 4、16位字存入存储器时,低位字节存入低地址, 高位字节存入高地址。图2.6中,(0004)=5678H, (0005)=3456H,(5678)=2F1EH, ((5678))=2F1EH X表示地址,(X)表示X单元中内容。
2、存储器(memory) 用于存放程序、数据、信息及中间结果。 RAM:随机存储器 ROM:只读存储器(存储BIOS) EPROM:可擦除只读存储器 FlashROM:闪速存储器
3、I/O子系统(输入/输出) 包括I/O设备及大容量存储器两类外部设备 1)I/O设备:显示器,键盘,打印机等 2)大容量存储器:外存,如磁盘、磁带、光盘 等 4、系统总线:连接CPU,存储器和I/O设备,用 于传送各部分之间信息
2)指针或变址寄存器 SP,BP,SI,DI (16位) 通常用于在段内寻址时提供偏移地址。 SP(Stack Pointer):堆栈指针寄存器 BP(Base Pointer):基址指针寄存器 SI (Source Index): 源变址寄存器 DI(Destination Index):目的变址寄存器
2、专用寄存器 1)IP(Instruction Pointer):指令指针寄存器,指 向下一条指令的首地址。 2)FLAGS:标志寄存器,共16位,用到其中9 位,根据有关指令的运行结果由CPU自动设 置,往往作为后续条件指令的转移控制条件。 OF-溢出标志 SF-符号标志 ZF-零标志 CF-进位标志 3、段寄存器:CS,DS,SS,ES
第四节 外部设备 一、外部设备:包括输入输出设备、大容量存储 器,如键盘、显示器、打印机、磁盘等。 外部设备与主机(CPU和寄存器)的通信是通过 外设接口进行的,每个接口包括一组寄存器。 这些寄存器一般有三种用途: 1、数据寄存器 2、状态寄存器 3、命令寄存器
汇编语言第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可作为堆栈区中的一个基地址以便访问 堆栈中的其他信息
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,应熟练掌握。
CH2 80x86计算机组织
习题: 习题:
4.内存34120地址H,依次存放3个数,分别是 字数据27H,字节数据0F1H和字数据9145H, 画图表示内存存放情况。 ···
27H 00H F1H 45H 91H ··· 34120H 34121H 34122H 34123H 34124H
2.2.3 8086/8088寄存器组 寄存器组
3.指针寄存器
BP(基址指针寄存器)
用法同通用寄存器 与SS段寄存器联用
SP(堆栈指针寄存器) IP(指令指针寄存器)
存放偏移指令 用户程序不能使用
2.2.3 8086/8088寄存器组 寄存器组
4.段寄存器
CS、DS、ES、SS
例题:程序执行之前(CS)=0A7F0H, (IP)=2B40H,试确定该程序第一个字的物理 地址。
运算结果非零正数:ZF=0,SF=0 最高位有进位:CF=1 1010+1000,次高位无进位 异或为1:OF=1,结果无效 低4位向高4位无进位:AF=0 低8位FDH中1的个数为7:PF=0
A 9 5 B + 8 C A 2 1 3 5 F D
习题: 习题:
1.写物理地址PA。
2314H:0035H 1FD0H:000AH
双字
一个双字占据相邻四个存储单元 低位字节存入低地址处,高位字节存入可存放于内存中任一单元,在进行读操作时内存单元 不发生变化,进行写操作时覆盖内存单元内容
例题1:将8162H存入0003H和0004H两个相 邻存储单元。
- - 0000H 0001H 0002H 0003H 0004H 0005H
第二章 80x86计算机组织
AGAIN: ……
…… LOOP AGAIN ;(CX)-1(CX),结果0转AGAIN
DX——Data可以作为数据寄存器使用。 一般在双字长乘除法运算时,
把DX和AX组合在一起存放一个双字长(32位)数,DX用来存放高16位;
对某些I/O操作DX可用来存放I/O的端口地址(口地址 256)。
AX——(Accumulator)作为累加器。 它是算术运算的主要寄存器, 所有I/O指令都使用这一寄存器与外部设备交换数据。 例: IN OUT AL , 20H 30H , AX
BX——Base用作基址寄存器使用。 在计算内存储器地址时,经常用来存放基址。
例:
MOV
AX, [BX+03H]
CX——Count可以作计数寄存器使用。 在循环LOOP指令和串处理指令中用作隐含计数器。
微处理器内部主要由四部分组成:
(1) 内部寄存器陈列 用来寄存参与运算的数据(8位), 经常可以连成寄存器对(16位)用来存放操作数地址。 16位专用寄存器
如: 程序计数器PC,堆栈指针SP
(2) 累加器和算术逻辑单元 对数据进行算术运算、逻辑运算场所, 运算结果 标志触发器记忆 或送某个寄存器等等。
8088
内部操作均按16位设计,
内部寄存器、运算部件及
除对外数据线为8根外,其余与8086基本相同。
为与当时已有的8 位外设接口芯片兼容。
IBM PC、IBP PC/XT 采用8088CPU
8
8088CPU结构特点小结:
(1) 内部结构 是16位的
(内部寄存器,内部运算部件,内部操作按 16位设计); (2)外部数据总线8条,能处理16位数据,也能处理8位数据; (具有16位运算指令,包括*、/指令) (3) 汇编语言与8080/8085兼容,即能执行整套8080/8085的指令.
第二章 80x86计算机组织
80x86汇编语言程序设计
1. 状态标志取值的一般规则
ZF(Zero Flag):零标志。若运算结果为0,则ZF = 1,否则 ZF = 0。
SF(Sign Flag):符号标志。若运算结果为负数,则SF = 1, 否则SF = 0。 CF(Carry Flag):进位标志。若加法时结果最高位向前有进 位或减法时最高位向前有借位,则CF = 1,否则CF = 0。 OF(Overflow Flag):溢出标志。若带符号数的运算结果超 出了补码表示的范围,则OF = 1,否则OF = 0。 AF(Auxiliary Carry Flag):辅助进位标志。若加法时结果 低4位向前有进位或减法时结果低4位向前有借位,则AF = 1,否 则AF = 0。 PF(Parity Flag):奇偶标志。若结果最低字节中1的个数为 偶数,则PF = 1,否则PF = 0。
80x86程序可以存取的最小数据单位是字节。例如,若要读取的位 数不足8位,则只能先读出一个完整字节,再屏蔽掉其它位。
字的存储采取“低字节在低地址,高字节在高地址,字的地址由低 地址表示”的小端方式,双字也类似。
要正确理解内存单元的地址和值,地址表示位置,值是相应位置处 的内容。同一地址既可以看作字节单元地址,也可以看作字甚至双字 单元地址,取决于具体的使用方式。
2013-1-20
80x86汇编语言程序设计
80x86 CPU有3种工作模式:实模式、保护模式和虚拟8086模 式。 在实模式下,段地址和偏移地址均为16位。20位物理地址由 16位段地址左移4位加16位偏移地址得到,只能寻址1MB的内存 空间,且每段≤64KB。 在实模式下,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 表示带符号溢出。
汇编第二章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表达真值是 , 表达真值是 显然运算结果也不正确
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子系统
汇编语言ppt课件清华版第二章80x86计算机组织
36
第2章 80x86计算机组织
2.5 外部设备〔续〕
2.外设中的每个存放器给予一个端口地址 〔端口号〕,这样就组成了一个独立于 内存储器的I/O地址空间。端口可以是8 位、16位甚至是32位的,但整个I/O空间 不允许超过64K
解决方法就是把1M字节地址空间划成假设干逻 辑段。每个逻辑段必须满足两个条件:一是逻辑 段的起始地址〔简称段首址〕必须是16的倍数; 二是逻辑段的最大长度为64K。按照这两个条件, 1M字节地址空间最多可划分成64K个逻辑段,最 少也要划分成16个逻辑段。逻辑段与逻辑段可以 相连,也可以不连,还可以重叠。
➢ 偏移地址为32位长,最大段长可从64KB 扩大到4GB
35
第2章 80x86计算机组织
2.5 外部设备
1.外设与主机的通信是通过外设接口进展的,每 个接口包括一组存放器:
数据存放器:用来存放要在外设和主机之间进展 传送的数据。实际上起缓冲作用。
状态存放器:用来保存外部设备或接口的状态信 息,以便CPU在必要时测试外设状态,了解外 设的工作情况〔如忙闲等〕 。
6
第2章 80x86计算机组织
80x86存放器组
图2.4 80x86CPU存放器分组
7
第2章 80x86计算机组织
1.通用存放器
〔1〕数据存放器〔可以字或字节的形式访问〕 共有4个,即存放器AX、BX、CX、DX,用来暂时存 放计算过程中所用到的操作数、运算结果或其他信 息。 但又有各自的专用目的: AX存放器称为累加器。使用频度最高,用于算术、逻 辑运算以及与外设传送信息等。 BX存放器称为基址存放器。常用于存放存储器地址。 CX存放器称为计数器。常用于保存计数值,如一般作 为循环或串操作等指令中的隐含计数器。 DX存放器称为数据存放器。在做双字长运算时用来存 放双字长数据的高16位〔AX存放低16位〕。另外, 在某些I/O操作中用于存放外设的端口地址。 8
第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
第二章 80x86计算机组织
寄 存 器
80x86的程序可见寄存器组
通用寄存器 专用寄存器 段寄存器
16位寄存器组
16位CPU所含有的寄存器有
4个数据寄存器(AX、BX、 CX和DX) 2个变址和指针寄 2个指针寄存器(SP和 BP) 存器(SI和DI)
4个段寄存器(ES、CS、SS 1个指令指针寄存 1 个 标 志 寄 存 器 (Flags) 和DS) 器(IP)
若算术运算的结果有溢出,则OF=1;否则 OF= 0。例如: 3AH + 7CH=B6H,产生溢出:OF = 1 AAH + 7CH=(1)26H,没有溢出:OF = 0
辅助进位标志AF(Auxiliary Carry Flag)
运算时D3位(低半字节)有进位或借位时, AF = 1;否则AF = 0。
外 总 线
运算寄存器
执行部分 控制电路
1 2 3 4 5 6
8位 指令队列缓冲器
ALU 标志
执行部件
总线接口部件
寄存器是CPU内部重要的数据存储资源,是汇编程序员能直接使 用的硬件资源之一。由于寄存器的存取速度比内存快,所以,在用 汇编语言编写程序时,要尽可能充分利用寄存器的存储功能。 寄存器一般用来保存程序的中间结果,为随后的指令快速提供操 作数,从而避免把中间结果存入内存,再读取内存的操作。在高级 语言(如:C/C++语言)中,也有定义变量为寄存器类型的,这就是 提高寄存器利用率的一种可行的方法。 另外,由于寄存器的个数和容量都有限,不可能把所有中间结果 都存储在寄存器中,所以,要对寄存器进行适当的调度。根据指令 的要求,如何安排适当的寄存器,避免操作数过多的传送操作是一 项细致而又周密的工作。 由于16位/32位CPU是微机CPU的两个重要代表,所以,在此只 介绍它们内部寄存器的名称及其主要功能。
汇编语言程序设计第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)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• BP:基址指针寄存器
56
78
• SI:源变址寄存器
9A
BC
• DI:目的变址寄存器
DE
F0
SP用来指示栈顶的偏移地址; BP可作为堆栈区中的一个基地址以便访问 堆栈中的其他信息
变址寄存器的用途
1. 可象数据寄存器一样在运算过程中存放 操作数;
2. 在段内寻址时提供偏移地址 3. SP、BP都可以与SS寄存器联用来确定
工作方式
(1)实模式:段寄存器保护实际的段地址,但 只限于1M的寻址
(2)保护模式:有更大寻址能力,使用各种表 格,段的实际地址放在描述符表中,使用段选 择器
(3)虚拟模式:提供比主存更大的空间,程序 可放在外存上,执行时调入,模拟多个CPU
2.2基于微处理器的计算机系统
计算机系统
计算机系统包括硬件和软件两部分: 1.硬件: 2.软件:
第二章 80x86计算机组织
主要内容
• 2.1 80x86微处理器 • 2.2 基于微处理器的计算机系统 • 2.3 中央处理机 • 2.4 存储器 • 2.5 外部设备
2.1 80x86微处理器
1、80x86是美国Intel公司的微处理器系列 ➢1969:4040芯片、4位 ➢1973:8080芯片、8位 ➢1978:8086芯片、16位 ➢1979:8088芯片、16位 ➢1982:80286芯片、16位 ➢1986:80386芯片、32位 …Pentium系列
2.4.1 存储单元的地址和内容
1. 位、字节和字
1) 位:计算机存储信息的基本单位,存储二进 制数:0或1。
2) 字节:每8位组成一个字节,在存储器里以 字节单位存储。
3) 字长:8086/8088、80286字长为16位,由2个 字节组成;80386字长为32位,由4个字节组 成,双字
2. 存储器地址
• 高级语言:用脱离机器指令、用易理解的方式 编写的程序,在抽象级上运行
机器语言和汇编语言的特点
• 汇编语言和机器语言一一对应,运行在计算机 的具体级上。处理对象是位、字节、字以及 CPU寄存器和存储单元。
• 汇编语言能够精确、逼真地描述计算机执行的 每一具体步骤,程序质量高。
• 汇编语言可移植性差,编程较复杂,还需了解 计算机硬件知识。
2.一些名词术语(1)
• 主频:主时钟频率,影响运行计算机速 度
• 数据总线:负责各部分间的数据传送
✓数据总线宽度:芯片内传送数据的宽度 ✓外部数据总线宽度:芯片内和芯片外交换数
据的宽度
• 地址总线宽度:用以确定可访问的存储 器的最大范围
地址总线宽度
• 10位:210=1024单元,1K • 20位:220=1024* 210单元=1024K,1M • 24位:224=16*1M,16M • 30位:230=1024M,1G • 32位:232=4G,即4GB
• 计算机软件:系统软件、用户软件
➢系统软件: ➢用户软件:
• 操作系统:主要部分是常驻监督程序 • I/O驱动程序:对I/O设备进行控制或管
理
计算机软件层次图
其它软件(1)
• 文件管理系统: • 文本编辑程序:如editor(edit命令),
记事本、写字板
• 翻译程序:分编译程序、解释程序 • 汇编程序:Asm、Masm、Tasm
▪ ASM:小汇编程序,它占有较小的存储区, 功能较弱
▪ MASM:宏汇编程序,功能较强,具有宏汇 编能力
▪ Masm for windows集成实验环境
其它软件(2)
• 连接程序:程序、库文件或其他已翻译 的子程序连接在一起,形成机器可执行 程序
• 装入程序:把程序从外存送到内存 • 调试程序:
➢系统带的调试程序Debug:举例 ➢Turbo Debug程序:Tdebug
➢Masm for windows集成实验环境
机器语言、汇编语言和高级语言
• 机器语言:二进制指令代码组成,机器可直接 识别并执行、不必依赖任何软件
• 汇编语言:一种符号语言,它几乎和机器语言 一一对应,使用助记符。是面向机器,便于记 忆的语言。
3.存储单元的内容
• 存储单元的内容:一个存储单 元存放的信息
(0004) = 1234H
• 字存放方式:低位字节放低地 址,高位字节放高地址,以其 低地址为准
• 同一个地址既可看作字节单元 地址,又可看作字单元地址
• 双字数据存放:类似
4.地址和内容
• 如果用X表示某存储单元的地址,则X单元的 内容可以表示为(X)
• 存储器地址
– 分配给每一个字节单元的编号。地址从0开始 编号,顺序地每次加1
– 每一个字节单元有唯一一个地址:物理地址
• 8086/8088:
– 20位,地址范围应该是00000H~FFFFFH
• 80286:
– 24位,地址范围应该是000000H~FFFFFFH
• 80386: 32位;Pentium: 36位
2.2.1 硬件
• 结构图:
功能部件
• 存储器:计算机的记忆部件 • 中央处理机:包括运算器和控制器 • 运算器:执行算术和逻辑运算指令 • 控制器:负责全机的控制工作,如取指
令、译码、分析、取数、执行、存数 • I/O系统:I/O设备、大容量存储器 • 系统总线:数据线、地址线和控制线三
组
2.2.2 软 件
堆栈段中的某一存储单元的地址 4. SI、DI一般与DS联用:
在串处理指令中,SI和DS联用,DI和ES联用
0059 005d 0060
关于SP、BP
栈 顶 SP
12
34
低地址
56
78
BP
9A
BC
栈底
DE
F0
高地址
通用寄存器(2)
• 80386及后继机型:
➢数据寄存器: EAX、EBX、ECX、EDX,32位 可作8位寄存器用:AH,AL,DH,DL等 可作16位寄存器用:AX,BX,CX,DX
• FLAGS:程序状态字寄存器PSW。放条件码 标志、控制标志、系统标志
专用寄存器(2)
• 80386及后继机型: • EIP、ESP、EFLAGS—32位 • 与IP、SP、FLAGS—16位的作用相同
程序状态字寄存器
• 8086/8088、80286:
NT IOPL 0F DF IF TF SF ZF
• ZF:零标志。运算结果为0,置1;否则置0。
• CF:进位标志。记录从最高有效位产生的进位值。 最高有效位有进位时置1,否则置0。
• AF:辅助进位标志。记录运算时第3位产生的进位 值。如第3位有进位时置1,否则置0。
• PF:奇偶标志。当结果操作数中1的个数为偶数时置 1,否则置0。
标志符号 举例
• 段地址:指每一段的起始地址
• 第一列就是每个小段的首地址 • 在1M字节的地址空间里,共有64K个小
段首地址:
00000H 00010H
… 41230H 41240H
… FFFE0H FFFF0H
物理地址
• 存储单元的物理地址:在1M字节的存储器里, 每一个存储单元对应的一个唯一的20位地址
▪ DF位为1时,每次操作后使变址寄存器SI和 DI减量,使串处理从高地址向低地址方向处 理:
▪ 当DF位为0时,则使SI和DI增量,使串处理 从低地址向高地址方向处理:
系统标志位
• IF:中断标志。 当IF=1时,允许中断; IF=1时关闭中断 • TF:陷井标志(跟踪标志)。用于单步方 式操作 • IOPL:I/O特权级。控制对I/O地址空间访 问
高级语言的特点
1. 高级语言在计算机的抽象级上运行,处理对象 是变量、数组等各种类型的数据。
2. 高级语言编程容易,可移植性好。 3. 在计算机的抽象级上运行,直接利用硬件系统
性能差,缺乏与硬件直接发生联系的语句,影 响编程技巧的发挥。
2.3 中央处理机
2.3.1 中央处理机CPU的组成 2.3.2 8086/8088的寄存器组
几个名词
• 段:将存储器划分成段,每个段的大小可达 64K,每段内地址可以用16位表示
• 小段:从0地址开始,每16个字节为一小段: 00000,00001,00002,…,0000E,0000F; 00010,00011,00012,…,0001E,0001F; 00020,00021,00022,…,0002E,0002F; ……
• 假如X单元中存放着Y,而Y又是一个地址,则 可用(Y)=((X))来表示Y单元的内容
• 举例: (0004H)=1234H,而(1234H)=2FlEH, 则也可记作 ((0004H))=2F1EH
5.存储器的特性
• 它的内容取之不尽 • 存入新的信息后,原来保存的内容就自
动丢失
2.4.2 实模式存储器寻址
• 物理地址的构成:20位物理地址由16位段地址 和16位偏移地址组成
• 段地址:它必须是小段的首地址,其低4位一 定是0,这样就规定段地址只取段起始地址的 高16位值。
• 偏移地址:指段内相对于段起始地址的偏移值
物理地址的计算
16位段地址 0000
➢变址寄存器:ESP、EBP、ESI、EDI,32位 ➢每个的专用属性与8086/8088、80286的寄存
器一一对应
专用寄存器(1)
• 8086/8088、80286:
– IP、SP、FLAGS—16位
• IP:指令指针寄存器。供系统使用,存放代码 段中的偏移地址,与CS寄存器联用确定下一条 指令的物理地址,指向下一条指令的首地址
AF
PF
CF
• 条件码标志:
❖ OF、SF、ZF、CF、AF、PF
• 控制标志位:DF • 系统标志位:TF、IF、IOPL(80286)