汇编语言第二章
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)堆栈指针寄存器ESP 用于存放当前堆栈段中栈顶的偏移地址
(3)标志寄存器 ( EFLAGS / PSW )
15 14 13 12 11 10 9 8 7 6 5 4 3 2 PF 1 0 CF OF DF SF ZF
状态标志: OF 溢出标志 SF 符号标志 ZF 零标志 CF 进位标志
控制标志: DF 方向标志
指令 mov ah, ‘*’
复制2A,也就是将星号*的ASCII码复制到8~15,
不改变EAX其他的任何位。
寄存器EBX、ECX和EDX也有低位字BX、
CX和DX,它们又可按照高位和低位字节划
分为BH和BL、CH和CL、DH和DL的每位
的改变不会改变相应寄存器的其他位。
对于EAX、EBX、ECX以及EDX的高位字
这样,一个存储单元除具有一个唯一 的物理地址外,还具有多个逻辑地址
地址总线
每个逻辑段的要求如下:逻辑段 的起始地址(通常简称为:段地址) 必须是16的倍数,即最低4位二进 制必须全为0; 逻辑段的最大 容量 为 64K , 这由 16 位寄存器的寻址空间所决 定。 按上述规定,1M内存最多可 分成64K个段,即65536个段(段 之间相互重叠),至少可分成16个 相互不重叠的段。 图为内存各逻辑段之间的分布 情况示意图,其中有相连的段(如: C和D段)、不相连的段(如:A和B 段)以及相互重叠的段(如:B和C 16位微机内存分段管理示意图 段)。
寄 存 器
80x86的程序可见寄存器组
通用寄存器 专用寄存器 段寄存器
通用寄存器
EAX、EBX、ECX、EDX 通常用来 存放一般性数据被称为通用寄存器。 下面以EAX为例,我们看一下寄存器 的逻辑结构。
寄存器EAX整体上按照地址可分成若干部分。低 位字:位数0~15,就是大家所知的AX寄存器。
有符号数据利用最高有效位表示数据的符号。所以, 最高有效位就是符号标志的状态。
奇偶标志PF(Parity Flag)
当运算结果最低字节中“1”的个数为零或偶数时, PF = 1;否则PF = 0。
例如:
3AH + 7CH=B6H=10110110B,
结果中有5个1,是奇数:PF = 0
溢出标志OF(Overflow Flag)
14700H
14700H
课堂练习
段地址:偏移地址为4018H:0009H,则 物理地址? 段地址:偏移地址为3125H:05C3H,则 物理地址?
40180H
+ 0009H 40189H 31250H + 05C3H 31813H
2.2 微机的硬件:CPU
CPU概述 一个典型的CPU由运算器、控制器、寄 存器等器件组成,这些器件靠内部总线 相连。 内部总线实现CPU内部各个器件之间的 联系。 外部总线实现CPU和主板上其它器件的 联系。
Read chaper3
Chap2 Parts of a Computer System
37
部分,却没有对应的命名所以不能通过名
字独立访问16~31位。
(2) 变址寄存器
寄 存 器 ESI 、 EDI 、 SI 和 DI 称为变址寄存器 (Index Register),主要用于存放某个存储单元的偏移地址。
(3)指针寄存器
寄存器EBP、ESP、BP和SP称为指针寄存器(Pointer Register),主要用于存放堆栈内存储单元的偏移量, 用它们可实现多种存储器操作数的寻址方式(在第6章有 详细介绍)。
若算术运算的结果有溢出,则OF=1;否则 OF=0。例如: 3AH + 7CH=B6H,产生溢出:OF = 1 AAH + 7CH=(1)26H,没有溢出:OF = 0
方向标志DF(Direction Flag) 用于串操作指令中,控制地址的变化方向: 设置DF=0,串操作的存储器地址自动增加; 设置DF=1,串操作的存储器地址自动减少。
CLD指令复位方向标志:DF=0 STD指令置位方向标志:DF=1
寄存器与存储器的比较:
寄 存 器
在CPU内部 访问速度快 容量小,成本高 用名字表示
存 储 器
在CPU外部 访问速度慢 容量大,成本低 用地址表示
没有地址 形成
地址可用各种方式
80x86 寄存器(1-2)
Chap2 Parts of a Computer System
一台PC中可能的存储器的逻辑图
实模式存储器寻址
1、存储器的分段管理 8086 CPU有20条地址线
最大可寻址空间为220=1MB 物理地址范围从00000H~FFFFFH
8086CPU将1MB空间分成许多逻辑段 (Segment)
每个段最大限制为64KB 段地址的低4位为0000B
(4)段寄存器
段寄存器: 8086CPU 的4个 16 位的段寄存器分别称 为代码段寄存器 CS ,数据段寄存器 DS ,堆栈段寄存器 SS ,附加数据段寄存器 ES 。段寄存器用来确定该段在 内存中的起始地址。
专用寄存器:
EIP、ESP、EFLAGS
(1)指令指针寄存器 EIP( Instruction Pointer )
2.1 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
微机系统的存储结构图:
分级结构来组织存储器系统:位于CPU内部的寄 存器、高速缓存器(Cache)、主存储器、外存 储器,它们的存取速度依次递减,而存储容量则 依次递增。
存储单元
存储器被划分为若干个存储单元,每个 存储单元从0开始顺序编号; 例如: 一个存储器有128个存储单元, 编号从0~127。 如右图示:
物理地址和逻辑地址的转换
将逻辑地址中的段地址左移4位,加上 偏移地址就得到20位物理地址 一个物理地址可以有多个逻辑地址
逻辑地址 物理地址 1460:100、1380:F00 14700H、 14700H
段地址左移4位 加偏移地址 物理地址 +
14600H 100H
13800H + F00H
86H + 7CH=(1)00H,结果是零:ZF = 1 注意:ZF为1表示的结果是0
符号标志SF(Sign Flag)
运算结果最高位为1,则SF = 1;否则SF = 0。
例如: 3AH + 7CH=B6H,最高位D7=1:SF = 1 86H + 7CH=(1)00H,最高位D7=0:SF = 0
注:指令的执行与标志有很大关系。 状态标志 用来记录程序运行结果的状态信息,许多指令 的执行都将相应地设置它。 控制标志 可由程序根据需要用指令设置,用于控制处理 器执行指令的方式。
零标志ZF(Zero Flag)
若运算结果为0,则ZF = 1,否则ZF = 0。 例如:
3AH + 7CH=B6H,结果不是零:ZF = 0
物理地址和逻辑地址
每个物理存储单元有一个唯一的20位 编号,即物理地址: 00000H~ FFFFFH 分段后用户编程时,采用逻辑地址: 段基地址 : 段内偏移地址
分隔符
逻辑地址
段地址说明逻辑段在主存中的起始位置 8086规定段地址必须是模16地址:xxxx0H 省略低4位0000B,段地址就可以用16位数 据表示,就能用16位段寄存器表达段地址 偏移地址说明主存单元距离段起始位置的 偏移量 每段不超过64KB,偏移地址也可用16位数 据表示
指令指针寄存器:8086CPU中的指令指针EIP,它总是 保存下一次将要从主存中取出指令的偏移地址,偏移地址 的值为该指令到所在段段首址的字节距离。在目标程序运 行时,EIP的内容由微处理器硬件自动设置,程序不能直接
访问EIP,但一些指令却可改变EIP的值,如转移指令、子
程序调用指令等。 32位CPU把指令指针扩展到32位,并 记作EIP,EIP的低16位与先前CPU中的IP作用相同。
第二章 计算机系统组成
回顾
数据可以表示为十进制、十六进制、二进 制 数据表示形式的转换 字符的ASCII码表示 二进制的补码表示
Chap2 Parts of a Computer System
2
本章内容
存储器 CPU
2.1微机硬件:存储器
微机系统的存储结构
寄存器——位于CPU中,速度最快,数量有限 主存——由半导体存储器构成 外存储器——容量很大,而存取速度比主存要 慢得多,存储各种程序和数据,还用作虚拟存储 器的硬件支持. 高速缓存(CACHE)——由一级缓存和二级缓 存构成,装载当前用得最多的程序或数据, 使CPU能以最快的速度工作.
31 EAX 24 23 16 15 AX 0
指令 sub ax,10
表示从存储在寄存器中的字中减去10,而EAX
寄存器的高位数(16~31)没有任何改变。
一个16位寄存器可以存储一个16位的数 据。 一个16位寄存器所能存储的数据的最大 值为多少? 答案:216-1。
Βιβλιοθήκη Baidu
8086上一代CPU中的寄存器都是8位的; 为保证兼容性,这四个寄存器都可以分为两个 独立的8位寄存器使用。 AX可以分为AH和AL;
33
80x86 寄存器(2-2)
Chap2 Parts of a Computer System
34
总结
Hardware硬件
存储器和存储地址 CPU & 寄存器
作业
练习 2.1 3(b) 练习2.2 3
Chap2 Parts of a Computer System
36
preparation