《汇编语言》寄存器物理地址第二章第二节.ppt
《《汇编语言》寄存器物理地址第二章第二节.ppt》由会员分享,可在线阅读,更多相关《《汇编语言》寄存器物理地址第二章第二节.ppt(64页珍藏版)》请在三一办公上搜索。
1、汇编语言课件,第2章 寄存器(CPU工作原理),2.1 通用寄存器2.2 字在寄存器中的存储2.3 几条汇编指令2.4 物理地址2.5 16位结构的CPU2.6 8086CPU给出物理地址的方法,2.7“段地址16+偏移地址=物理地址”的本质含义2.8 段的概念2.9 段寄存器2.10 CS和IP2.12 代码段,CPU概述,一个典型的CPU由运算器、控制器、寄存器等器件组成,这些器件靠内部总线相连。内部总线实现CPU内部各个器件之间的联系。外部总线实现CPU和主板上其它器件的联系。,寄存器概述,含14个16位寄存器,按功能可分为三类 8个通用寄存器 4个段寄存器 2个控制寄存器它们的名称为:
2、AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。,5,通用寄存器,数据寄存器(AX,BX,CX,DX)地址指针寄存器(SP,BP)变址寄存器(SI,DI),2.1 通用寄存器,8086CPU所有的寄存器都是16位的,可以存放两个字节。AX、BX、CX、DX 通常用来存放一般性数据被称为通用寄存器。下面以AX为例,我们看一下寄存器的逻辑结构。,一个16位寄存器可以存储一个16位的数据。(数据的存放情况)一个16位寄存器所能存储的数据的最大值为多少?答案:216-1。,2.1 通用寄存器,16位数据在寄存器中的存放情况,数据:18二进制表示:10010在寄存器
3、AX中的存储:,16位数据在寄存器中的存放情况,数据:20000二进制表示:在寄存器AX中的存储:,2.1 通用寄存器,8086上一代CPU中的寄存器都是8位的;为保证兼容性,这四个寄存器都可以分为两个独立的8位寄存器使用。AX可以分为AH和AL;BX可以分为BH和BL;CX可以分为CH和CL;DX可以分为DH和DL。8086CPU的8位寄存器存储逻辑,2.1 通用寄存器,以AX为例,8086CPU的16位寄存器分为两个8位寄存器的情况:,2.1 通用寄存器,AX的低8位(0位7位)构成了AL寄存器,高8位(8位15位)构成了AH寄存器。AH和AL寄存器是可以独立使用的8位寄存器。8086CP
4、U的8位寄存器数据存储情况一个8位寄存器所能存储的数据的最大值是多少?答案:28-1。,2.1 通用寄存器,2.2 字在寄存器中的存储,一个字可以存在一个16位寄存器中,这个字的高位字节和低位字节自然就存在这个寄存器的高8位寄存器和低8位寄存器中。,关于数制的讨论,由于一个内存单元可以存放 8位数据,CPU中的寄存器又可存放 n 个 8位数据。也就是说,计算机中的数据大多 是由1N个8位数据构成的。用十六进制来表示数据可以直观的看 出这个数据是由哪些8位数据构成的。,2.3 几条汇编指令,汇编指令不区分大小写,1,2.3 几条汇编指令,CPU执行下表中的程序段的每条指令后,对寄存器中的数据进行
5、的改变。,2.3 几条汇编指令,地址寄存器,包括指针和变址寄存器SI、DI、SP、BP四个16位寄存器。顾名思义,它们可用来存放存储器的偏移地址。另外,它们也可以作为通用寄存器用。严格地说,用来存放存储器偏移地址的寄存器都应该叫地址寄存器,如BX基址寄存器、IP指令指针寄存器等。,SI 源变址寄存器,可用于存放源缓冲区的偏移地址。DI 目的变址寄存器,可用于存放目的缓冲区的偏移地址。,SP 堆栈指针寄存器,用于指出堆栈区的栈顶的偏移地址。BP 基址指针寄存器,用于指出堆栈区的某个单元的偏移地址。,CS 代码段寄存器,用于指出存放程序的代码段的段地址。DS 数据段寄存器,用于指出存放数据的数据段
6、的段地址。ES 附加段寄存器,用于指出存放附加数据的附加段的段地址。SS 堆栈段寄存器,用于指出堆栈区的堆栈段的段地址。,段寄存器,控制寄存器,溢出标志,方向标志,中断标志,跟踪标志,符号标志,零标志,辅助进位标志,奇偶标志,进位标志,IP指令指针寄存器:用来存放代码段中的偏移地址,指出当前正在执行指令的下一条指令所在单元的偏移地址。,FLAGS标志寄存器:其中的某位代表CPU的一个标志,最低位为D0,最高位为D15。8086CPU的标志寄存器共有9个标志,分别为6个条件码标志和3控制标志。其含义如下:,在DEBUG调试环境下以字母缩写的形式表示各个标志位的状态。进入DEBUG后,用R命令查看
7、寄存器状态时,可以看到除了跟踪标志以外的标志位的状态。,例1 两个二进制数相加运算,有关标志位自动发生变化。10011010+01001011 11100101CPU会自动地把标志位设为:CF=0,SF=1,ZF=0,OF=0,即无进位,结果为负数,结果不为0,没有溢出。,2.4 物理地址,CPU访问内存单元时要给出内存单元的地址。所有的内存单元构成的存储空间是一个一维的线性空间。每一个内存单元在这个空间中都有唯一的地址,这个唯一的地址称为物理地址。,2.5 16位结构的CPU,概括的讲,16位结构描述了一个CPU具有以下几个方面特征:1、运算器一次最多可以处理16位的数据。2、寄存器的最大宽
8、度为16位。3、寄存器和运算器之间的通路是16位的。,2.6 8086CPU给出物理地址的方法,8086有20位地址总线,可传送20位地址,寻址能力为1M。8086内部为16位结构,它只能传送16位的地址,表现出的寻址能力却只有64K。,2.6 8086CPU给出物理地址的方法,8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址。8086CPU相关部件的逻辑结构,在8086CPU内部用两个16位地址合成的方法来形成一个20位的物理地址,地址加法器,地址加法器合成物理地址的方法:物理地址=段地址16+偏移地址 物理地址=段地址10H+偏移地址例如:8086CPU访问
9、地址为123C8H的内存单元 由段地址16引发的讨论,观察移位次数和各种形式数据的关系:(1)一个数据的二进制形式左移1位,相当于该数据乘以2;(2)一个数据的二进制形式左移N位,相当于该数据乘以2的N次方;(3)地址加法器如何完成段地址16的运算?以二进制形式存放的段地址左移4位。,由段地址16引发的讨论,2.7“段地址16+偏移地址=物理地址”的本质含义,两个比喻说明:说明“基础地址+偏移地址=物理地址”的思想:第一个比喻说明“段地址16+偏移地址=物理地址”的思想:第二个比喻 8086CPU就是这样一个只能提供两张3位数据纸条的CPU。,“基础地址+偏移地址=物理地址”,比如说,学校、体
10、育馆同在一条笔直的单行路上(学校位于路的起点0米处)。读者在学校,要去图书馆,问我那里的地址,我可以用几种方式描述这个地址?,“基础地址+偏移地址=物理地址”,(1)从学校走2826m到图书馆。这2826可以认为是图书馆的物理地址。(2)从学校走2000m到体育馆,从体育馆再走826m到图书馆。第一个距离2000m是相对于起点的基础地址;第二个距离826m是将对于基础地址的偏移地址。,“段地址16+偏移地址=物理地址”,比如我们只能通过纸条来通信,读者问我图书馆的地址,我只能将它写在纸上告诉读者。显然我必须有一张可以容纳 4 位数据的纸条才能写下2826这个数据:,“段地址16+偏移地址=物理
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 寄存器 物理地址 第二
链接地址:https://www.31ppt.com/p-6380129.html