《汇编语言》3.ppt
《《汇编语言》3.ppt》由会员分享,可在线阅读,更多相关《《汇编语言》3.ppt(73页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、汇编语言课件-3第3章寄存器(CPU工作原理)n3.1通用寄存器n3.2字在寄存器中的存储n3.3几条汇编指令n3.4物理地址n3.516位结构的CPUn3.68086CPU给出物理地址的方法n3.7“段地址16+偏移地址 =物理地址”的本质含义n3.8 段的概念n3.9 段寄存器n3.10CS和IPn3.12代码段CPU概述n一个典型的CPU由运算器、控制器、寄存器等器件组成,这些器件靠内部总线相连。n内部总线实现CPU内部各个器件之间的联系。n外部总线实现CPU和主板上其它器件的联系。寄存器概述n含14个16位寄存器,按功能可分为三类8个通用寄存器4个段寄存器2个控制寄存器n它们的名称为:
2、AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。5通用寄存器数据寄存器(AX,BX,CX,DX)地址指针寄存器(SP,BP)变址寄存器(SI,DI)3.1通用寄存器n8086CPU所有的寄存器都是16位的,可以存放两个字节。nAX、BX、CX、DX通常用来存放一般性数据被称为通用寄存器。n下面以AX为例,我们看一下寄存器的逻辑结构。n一个16位寄存器可以存储一个16位的数据。(数据的存放情况)n一个16位寄存器所能存储的数据的最大值为多少?答案:216-1。3.1通用寄存器3.1通用寄存器n8086上一代CPU中的寄存器都是8位的;n为保证兼容性,这四个寄
3、存器(AX,BX,CX,DX)都可以分为两个独立的8位寄存器使用。nAX可以分为AH和AL;nBX可以分为BH和BL;nCX可以分为CH和CL;nDX可以分为DH和DL。n8086CPU的8位寄存器存储逻辑3.1通用寄存器n以AX为例,8086CPU的16位寄存器分为两个8位寄存器的情况:3.1通用寄存器nAX的低8位(0位7位)构成了AL寄存器,高8位(8位15位)构成了AH寄存器。nAH和AL寄存器是可以独立使用的8位寄存器。n8086CPU的8位寄存器数据存储情况n一个8位寄存器所能存储的数据的最大值是多少?答案:28-1。3.2字在寄存器中的存储n一个字可以存在一个16位寄存器中,这个
4、字的高位字节和低位字节自然就存在这个寄存器的高8位寄存器和低8位寄存器中。关于数制的讨论n由于一个内存单元可以存放8位数据,CPU中的寄存器又可存放n个8位数据。也就是说,计算机中的数据大多是由1N个8位数据构成的。n用十六进制来表示数据可以直观的看出这个数据是由哪些8位数据构成的。3.3几条汇编指令汇编指令不区分大小写13.3几条汇编指令nCPU执行下表中的程序段的每条指令后,对寄存器中的数据进行的改变。3.3几条汇编指令地址寄存器地址寄存器n包括指针和变址寄存器包括指针和变址寄存器SI、DI、SP、BP四个四个16位寄存器。顾名思义,它们位寄存器。顾名思义,它们可用来存放存储器的偏移地址。
5、另外,可用来存放存储器的偏移地址。另外,它们也可以作为通用寄存器用。严格它们也可以作为通用寄存器用。严格地说,用来存放存储器偏移地址的寄地说,用来存放存储器偏移地址的寄存器都应该叫地址寄存器,如存器都应该叫地址寄存器,如BX基址基址寄存器、寄存器、IP指令指针寄存器等。指令指针寄存器等。nSI源变址寄存器,可用于存放源缓源变址寄存器,可用于存放源缓冲区的偏移地址。冲区的偏移地址。nDI目的变址寄存器,可用于存放目目的变址寄存器,可用于存放目的缓冲区的偏移地址。的缓冲区的偏移地址。SP堆栈指针寄存器,用于指出堆栈区的栈顶的偏移地址。BP基址指针寄存器,用于指出堆栈区的某个单元的偏移地址。nCS代
6、码段寄存器,用于指出存放程代码段寄存器,用于指出存放程序的代码段的段地址。序的代码段的段地址。nDS数据段寄存器,用于指出存放数数据段寄存器,用于指出存放数据的数据段的段地址。据的数据段的段地址。nES附加段寄存器,用于指出存放附附加段寄存器,用于指出存放附加数据的附加段的段地址。加数据的附加段的段地址。nSS堆栈段寄存器,用于指出堆栈区堆栈段寄存器,用于指出堆栈区的堆栈段的段地址。的堆栈段的段地址。段寄存器段寄存器控制寄存器控制寄存器溢出标志方向标志中断标志跟踪标志符号标志零标志辅助进位标志奇偶标志进位标志IP指令指针寄存器:用来存放代码段中的偏移地址,指出当前正在执行指令的下一条指令所在单
7、元的偏移地址。nFLAGS标志寄存器:其中的某位代表标志寄存器:其中的某位代表CPU的一个标的一个标志,最低位为志,最低位为D0,最高位为,最高位为D15。8086CPU的标的标志寄存器共有志寄存器共有9个标志,分别为个标志,分别为6个条件码标志和个条件码标志和3控制标志。其含义如下:控制标志。其含义如下:n例例1两两个个二二进进制制数数相相加加运运算算,有有关关标标志志位自动发生变化。位自动发生变化。10011010+0100101111100101nCPU会自动地把标志位设为:会自动地把标志位设为:CF=0,SF=1,ZF=0,OF=0,即无进位,结,即无进位,结果为负数,结果不为果为负数
8、,结果不为0,没有溢出。,没有溢出。标志名标志值为1值为0进位标志CFCYNC符号标志SFNGPL零标志ZFZRNZ溢出标志OFOVNV辅助进位标志AFACNA奇偶标志PFPEPO方向标志DFDNUP中断标志IFEIDI3.416位结构的CPUn概括的讲,16位结构描述了一个CPU具有以下几个方面特征:n1、运算器一次最多可以处理16位的数据。n2、寄存器的最大宽度为16位。n3、寄存器和运算器之间的通路是16位的。3.5物理地址nCPU访问内存单元时要给出内存单元的地址。所有的内存单元构成的存储空间是一个一维的线性空间。每一个内存单元在这个空间中都有唯一的地址,这个唯一的地址称为物理地址。3
9、.68086CPU给出物理地址的方法n8086有20位地址总线,可传送20位地址,寻址能力为1M。n8086内部为16位结构,它只能传送16位的地址,表现出的寻址能力却只有64K。3.68086CPU给出物理地址的方法n8086CPU采用一种在内部用两个16位地址合成的方法来形成一个20位的物理地址。n8086CPU相关部件的逻辑结构地址加法器n地址加法器合成物理地址的方法:物理地址=段地址16+偏移地址 物理地址=段地址10H+偏移地址n例如:8086CPU访问地址为123C8H的内存单元 由段地址16引发的讨论n观察移位次数和各种形式数据的关系:n(1)一个数据的二进制形式左移1位,相当于
10、该数据乘以2;n(2)一个数据的二进制形式左移N位,相当于该数据乘以2的N次方;n(3)地址加法器如何完成段地址16的运算?以二进制形式存放的段地址左移4位。由段地址16引发的讨论3.7“段地址16+偏移地址=物理地址”的本质含义n两个比喻说明:n说明“基础地址+偏移地址=物理地址”的思想:第一个比喻n说明“段地址16+偏移地址=物理地址”的思想:第二个比喻8086CPU就是这样一个只能提供两张3位数据纸条的CPU。3.8段的概念n错误认识:n内存被划分成了一个一个的段,每一个段有一个段地址。n其实:n内存并没有分段,段的划分来自于CPU,由于8086CPU用“(段地址16)+偏移地址=物理地
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言
限制150内