《汇编语言》寄存器物理地址(第二章第二节)解析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.1 通用寄存器
以AX为例,8086CPU的16位寄存器分 为两个8位寄存器的情况:
2.1 通用寄存器
AX 的低 8 位( 0 位 ~7 位)构成了 AL寄存 器,高 8 位( 8 位 ~15 位)构成了 AH 寄 存器。 AH和AL寄存器是可以独立使用的8位寄 存器。 8086CPU的8位寄存器数据存储情况 一个 8 位寄存器所能存储的数据的最大 值是多少? 答案:28-1。
2.1 通用寄存器
ቤተ መጻሕፍቲ ባይዱ
一个16位寄存器可以存储一个16位的数 据。(数据的存放情况) 一个16位寄存器所能存储的数据的最大 值为多少? 答案:216-1。
2.1 通用寄存器
8086上一代CPU中的寄存器都是8位的; 为保证兼容性,这四个寄存器都可以分 为两个独立的8位寄存器使用。 AX可以分为AH和AL; BX可以分为BH和BL; CX可以分为CH和CL; DX可以分为DH和DL。 8086CPU的8位寄存器存储逻辑
通用寄存器
数据寄存器(AX,BX,CX,DX) 地址指针寄存器(SP,BP) 变址寄存器(SI,DI)
5
2.1 通用寄存器
8086CPU所有的寄存器都是16位的, 可以存放两个字节。 AX、BX、CX、DX 通常用来存放一般 性数据被称为通用寄存器。 下面以AX为例,我们看一下寄存器的 逻辑结构。
SI 源变址寄存器,可用于存放源缓 冲区的偏移地址。 DI 目的变址寄存器,可用于存放目 的缓冲区的偏移地址。
SP 堆栈指针寄存器,用于指出堆栈
区的栈顶的偏移地址。
BP 基址指针寄存器,用于指出堆栈
区的某个单元的偏移地址。
段寄存器
CS 代码段寄存器,用于指出存放程 序的代码段的段地址。 DS 数据段寄存器,用于指出存放数 据的数据段的段地址。 ES 附加段寄存器,用于指出存放附 加数据的附加段的段地址。 SS 堆栈段寄存器,用于指出堆栈区 的堆栈段的段地址。
CPU概述
一个典型的CPU由运算器、控制器、寄 存器等器件组成,这些器件靠内部总线 相连。 内部总线实现CPU内部各个器件之间的 联系。 外部总线实现CPU和主板上其它器件的 联系。
寄存器概述
含14个16位寄存器,按功能可分为三类
8个通用寄存器 4个段寄存器 2个控制寄存器 它们的名称为: AX、BX、CX、DX、SI、DI、SP、BP、 IP、CS、SS、DS、ES、PSW。
控制寄存器
IP 指令指针寄存器:用来存放代码段中的偏移地址, 指出当前正在执行指令的下一条指令所在单元的偏 移地址。 FLAGS标志寄存器:其中的某位代表CPU的一个标 志,最低位为D0,最高位为D15。8086CPU的标 志寄存器共有9个标志,分别为6个条件码标志和3 控制标志。其含义如下:
由段地址×16引发的讨论
2.5 16位结构的CPU
概括的讲,16位结构描述了一个CPU具有 以下几个方面特征:
1、运算器一次最多可以处理16位的数据。 2、寄存器的最大宽度为16位。 3、寄存器和运算器之间的通路是16位的。
2.6 8086CPU给出物理地址的方法
8086有20位地址总线,可传送20 位地址,寻址能力为1M。 8086内部为16位结构,它只能传送 16位的地址,表现出的寻址能力却 只有64K。
2.6 8086CPU给出物理地址的方法
8086CPU采用一种在内部用两个16位 地址合成的方法来形成一个20位的物 理地址。 8086CPU相关部件的逻辑结构
地址加法器
地址加法器合成物理地址的方法: 物理地址=段地址×16+偏移地址 物理地址=段地址×10H+偏移地址 例如: 8086CPU访问地址为123C8H的内存单元
《汇编语言》课件
第2章 寄存器(CPU工作原理)
2.1 通用寄存器 2.2 字在寄存器中的存储 2.3 几条汇编指令 2.4 物理地址 2.5 16位结构的CPU 2.6 8086CPU 给出物理地址 的方法
2.7 “段地址×16+偏移地址 =物理地址”的本质含义 2.8 段的概念 2.9 段寄存器 2.10 CS和IP 2.12 代码段
标志名
进位标志 符号标志 零标志 溢出标志 辅助进位 标志 奇偶标志
标志
CF SF ZF OF AF
值为1
CY NG ZR OV AC
值为0
NC PL NZ NV NA
PF DF
IF
PE DN
EI
PO UP
DI
方向标志
中断标志
2.4 物理地址
CPU访问内存单元时要给出内存单元 的地址。所有的内存单元构成的存储 空间是一个一维的线性空间。 每一个内存单元在这个空间中都有唯 一的地址,这个唯一的地址称为物理 地址。
溢出标志
方 向 标 志
中断标志 跟踪标志 符号标志 零标志 奇偶标志 进位标志 辅助进位标志
例1 两个二进制数相加运算,有关标志 位自动发生变化。 10011010 + 01001011 11100101 CPU会自动地把标志位设为:CF=0, SF=1,ZF=0,OF=0,即无进位,结 果为负数,结果不为0,没有溢出。
2.2 字在寄存器中的存储
一个字可以存在一个 16 位寄存器中, 这个字的高位字节和低位字节自然 就存在这个寄存器的高 8 位寄存器 和低8位寄存器中。
关于数制的讨论
由于一个内存单元可以存放 8位数据, CPU中的寄存器又可存放 n 个 8位数据。 也就是说,计算机中的数据大多 是由1~N个8位数据构成的。 用十六进制来表示数据可以直观的看 出这个数据是由哪些8位数据构成的。
2.3 几条汇编指令
1
汇编指令不区分大小写
2.3 几条汇编指令
CPU执行下表中的程序段的每条指令后, 对寄存器中的数据进行的改变。
2.3 几条汇编指令
地址寄存器
包括指针和变址寄存器SI、DI、SP、 BP四个16位寄存器。顾名思义,它们 可用来存放存储器的偏移地址。另外, 它们也可以作为通用寄存器用。严格 地说,用来存放存储器偏移地址的寄 存器都应该叫地址寄存器,如BX基址 寄存器、IP指令指针寄存器等。