微机原理及应用 课件 3.8 8088CPU的通寄存器_第1页
微机原理及应用 课件 3.8 8088CPU的通寄存器_第2页
微机原理及应用 课件 3.8 8088CPU的通寄存器_第3页
微机原理及应用 课件 3.8 8088CPU的通寄存器_第4页
微机原理及应用 课件 3.8 8088CPU的通寄存器_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微机原理及应用第三章认识微处理器第八讲8088CPU的通用寄存器下面我们来学习8088CPU的通用寄存器8088CPU的通用寄存器在8088的内部有14个,16位的寄存器,我们把它们分成两类,一类是通用寄存器,一类是专用寄存器,左边是通用寄存器,一共有八个,这八个通用寄存器都在8088内部的EU这个部分中,我们可以把这八个通用寄存器再细分成三类,包括数据寄存器AX、BX、CX和DX共4个,两个指针寄存器SP和BP,还有两个变址寄存器SI和DI14个16位的寄存器通用寄存器专用寄存器AHALBHBLCHCLDHDLAXBXCXDX堆栈指针寄存器基址指针寄存器SPBP指针寄存器SIDI源变址寄存器目的变址寄存器变址寄存器数据寄存器IP指令指针FLAGS状态标志控制寄存器CSDSSSES段寄存器代码段寄存器数据段寄存器堆栈段寄存器附加段寄存器首先我们来看一下数据寄存器,数据寄存器是用来存放参与运算的数据或者运算的结果,这里的每一个数据寄存器都是16位的,但是每一个16位的寄存器又可以分成两个独立的八位寄存器来使用数据寄存器用于存放运算数据或运算结果每个16位寄存器均可分别作为2个独立的8位寄存器使用比如AX,我们可以把它分成两个八位的寄存器,其中它的低八位,我们把它叫做AL寄存器,它的高八位,我们把它叫做AH寄存器。所以当AX用来存储一个16位的数据的时候,它是作为一个整体来看待的,但是如果把它分开,用来存放8位的数据,那你就要注意数据是存放在了AL还是AH中,除此以外,我们在来看看这些寄存器的名字,其实他们的名字跟他们的功能是直接相关的AX16AH8AL8低八位高八位存储时作为整体注意数据存放于AL或AH中寄存器的名字与其功能直接相关AX是累加器,常用在加、减乘除等各种运算中AX16AH8AL8累加器

Accumulator用于各种运算中BX是基址寄存器,它通常可以用来存放跟地址相关的信息AX16AH8AL8累加器

Accumulator基址寄存器BaseBXBHBL用于存放跟地址相关的信息CX是计数寄存器,CX可以用来计数AX16AH8AL8累加器

Accumulator基址寄存器BaseBXBHBL计数寄存器CountCXCHCL用于计数DX是数据寄存器,常用于存放数据AX16AH8AL8累加器

Accumulator基址寄存器BaseBXBHBL计数寄存器CountCXCHCL数据寄存器DataDXDHDL用于存放数据四个数据寄存器除了存放算术或逻辑单元的操作数以外,他们还有各自特有的用途,也就是在某一种场景下,我们只能使用这个寄存器,使用其他的寄存器会出错四个数据寄存器除存放算术或逻辑单元操作数外,还有各自用途比如说AX可以存放算术或逻辑运算的操作数,它的一个特殊的应用场景就是在输入输出指令中,也就是In或者out指令中,我们只能用AX跟外部接口进行信息的传输,Bx它常用于存放访问内存的基地址,Cx是在循环或者串操作的时候用做计数器,在使用寄存器间接寻址的输入输出指令中,我们使用dx来存放输入输出端口的端口号或者端口地址AXBXDXCX存放算术或逻辑运算的操作数寄存器间接寻址的I/O指令中,用来存放输入输出端口的端口号或端口地址常用于存放访问内存时的基地址在循环或串操作时用做计数器凡IN或OUT指令均必须用累加器与外部接口传送信息再来看两个指针寄存器,SP和BP指针寄存器SPBP首先来看SP,SP的英文是stackpointer,它的中文含义是堆栈指针寄存器,它主要用于在堆栈中做指针指针寄存器SP堆栈指针寄存器stackpointer用于在堆栈中做指针我们首先来看一下堆栈,堆栈是我们在内存中开辟的一个特定区域●

●●●

●●●

●●●

●●●

●●●

●●SP1000HSS20000H1000HBP3000H堆栈段起始地址栈底栈顶21000H栈中某单元23000H堆栈RAM区这个区域是用来临时存放数据的,堆栈的一个特点就是他是先进后出的结构●

●●●

●●●

●●●

●●●

●●●

●●SP1000HSS20000H1000HBP3000H堆栈段起始地址栈底栈顶21000H栈中某单元23000H堆栈RAM区用于临时存放数据结构:先进后出如果这个堆栈它是空的话,那么它的栈顶和它的栈底是重合的●

●●●

●●●

●●●

●●●

●●●

●●SP1000HSS20000H1000HBP3000H堆栈段起始地址栈底栈顶21000H栈中某单元23000H堆栈RAM区栈顶栈底重合堆栈:空当这个堆栈满的时候,它的栈顶就会指向他这个堆栈段的首地址,至于堆栈的首地址,我们可以通过特定的方式来计算,关于这一点我们在介绍段基址的再详细说明●

●●●

●●●

●●●

●●●

●●●

●●SP1000HSS20000H1000HBP3000H堆栈段起始地址栈底栈顶21000H栈中某单元23000H堆栈RAM区栈顶栈底重合堆栈:空栈顶指向堆栈段的首地址堆栈:满堆栈的首地址可通过特定方式计算现在我们知道SP是指向这个堆栈段的栈顶的,那么sp的值究竟是多少呢?●

●●●

●●●

●●●

●●●

●●●

●●SP1000HSS20000H1000HBP3000H堆栈段起始地址栈底栈顶21000H栈中某单元23000H堆栈RAM区sp的值是多少?它的值其实就是它当前指向的堆栈最上面的这个数据,到堆栈的起始地址的距离,我们也跟这个距离叫偏移量,●

●●●

●●●

●●●

●●●

●●●

●●SP1000HSS20000H1000HBP3000H堆栈段起始地址栈底栈顶21000H栈中某单元23000H堆栈RAM区偏移量举个例子大家会比较好理解,我们把堆栈看成是一个装衣服的整理箱,这个整理箱有个盖子,这个盖子指向的就是这个堆栈段的起始地址,●

●●●

●●●

●●●

●●●

●●●

●●SP1000HSS20000H1000HBP3000H堆栈段起始地址栈底栈顶21000H栈中某单元23000H堆栈RAM区这个整理箱的底部就是这个堆栈段的栈底●

●●●

●●●

●●●

●●●

●●●

●●SP1000HSS20000H1000HBP3000H堆栈段起始地址栈底栈顶21000H栈中某单元23000H堆栈RAM区●

●●●

●●●

●●●

●●●

●●●

●●SP1000HSS20000H1000HBP3000H堆栈段起始地址栈底栈顶21000H栈中某单元23000H堆栈RAM区当我们往这个箱子里面放衣服的时候,最上面的这件衣服就是堆栈的栈顶的位置,SP就指向这个位置●

●●●

●●●

●●●

●●●

●●●

●●SP1000HSS20000H1000HBP3000H堆栈段起始地址栈底栈顶21000H栈中某单元23000H堆栈RAM区基址指针寄存器,BP,base,pointer,它可以指向堆栈的任何一个单元BPbasepointer可指向堆栈的任何一个单元基址指针寄存器在这张图中是1000h,而BP就要灵活得多,●

●●●

●●●

●●●

●●●

●●●

●●SP1000HSS20000H1000HBP3000H堆栈段起始地址栈底栈顶21000H栈中某单元23000H堆栈RAM区它可以指向堆栈里面存放的任何一个数据,比如它指向的这个数据的地址是23000h那么BP的值就是3000h●

●●●

●●●

●●●

●●●

●●●

●●SP1000HSS20000H1000HBP3000H堆栈段起始地址栈底栈顶21000H栈中某单元23000H堆栈RAM区指向堆栈里存放的任何一个数据最后看一下变址寄存器,变址寄存器包括SI和DI,变址寄存器SIDISI是sourceindex就是源索引变址寄存器SIDI源索引源索引sourceindexsourceindexDI是destinationindex就是目标索引变址寄存器目标索引destina

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论