第2章寄存器(CPU工作原理)_第1页
第2章寄存器(CPU工作原理)_第2页
第2章寄存器(CPU工作原理)_第3页
第2章寄存器(CPU工作原理)_第4页
第2章寄存器(CPU工作原理)_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

第二章寄存器8088/86微处理器的内部结构执行部分EU总线接口部分BIU返回寄存器组AXBXCXDXSPBPSIDI8位8位AHALAXBHBLBXCHCLCXDHDLDX16位寄存器通用寄存器累加器基址计数器数据指针寄存器变址寄存器堆栈指针基数指针源变址目的变址寄存器组IPPSWCSDSSSES控制寄存器段寄存器状态标志指令指针代码段数据段堆栈段附加段提供相应的段地址。一、通用寄存器8086CPU的内部寄存器都是16位。将AX、BX、CX、DX四个寄存器称为通用寄存器。通用寄存器可分为两个独立的8位寄存器来用。AX寄存器的逻辑结构15141312111098765432100000000000010010MOVAX,18MOVAX,20000010011100010000016位寄存器分成两个8位寄存器的使用情况AX寄存器的逻辑结构1514131211109876543210AX寄存器的逻辑结构15141312111098765432107654321076543210AHAL0100111000100000寄存器寄存器中的数据所表示的值AXAHAL010011100010000020000(4E20H)0100111078(4EH)0010000032(20H)一个8位寄存器所能存储的数据的最大值是多少?一个16位寄存器所能存储的最大值又是多少?二、字在寄存器中的存储字节(Byte):由8个比特组成;可以存在8位寄存器中。字(word):由两个字节组成;这两个字节分别称为这个字的高位字节和低位字节。注:一个16位寄存器中的数据即可以看成一个字型数据,也可以看作两个字节型数据。例:可看成一个字型数据20000存在AX中,也可看成两个独立的字节型数据分为为78和32。01001110001000000100111000100000三、几条汇编指令注:在汇编语言中英文字母不区分大小字。汇编指令控制CPU完成的操作用高级语言描述MOVAX,18将18送入寄存器AXAX=18MOVAH,78将78送入寄存器AHAH=78ADDAX,8将寄存器AX中的数值加上8AX=AX+8MOVAX,BX将寄存器BX中的数据送入AXAX=BXADDAX,BX将AX和BX中的数值相加,结果保存在AX中AX=AX+BX程序段中的指令AX中的数据BX中的数据MOVAX,4E20HADDAX,1406HMOVBX,2000HADDAX,BXMOVBX,AXADDAX,BX设原AX=BX=0000H,分析下列指令执行后AX,BX中的数据为多少?4E20H0000H6226H0000H6226H2000H8226H2000H8226H8226H8226H+8226H=1044CH AX=?044CH8226H注:当所保存的数据位数大于寄存器的位数时,高位的数据会丢失,称为数据溢出。程序段中的指令AX中的数据BX中的数据MOVAX,001AHMOVBX,0026HADDAL,BLADDAH,BLADDBH,ALMOVAH,0ADDAL,85HADDAL,93H001AH 0000H001AH 0026H0040H 0026H2640H 0026H2640H 4026H0040H 4026H00C5H 4026H0058H 4026H注:当通用寄存器作为8位寄存器使用时,低8位和高8位相当于两个独立的寄存器,它们之间没有直接关系,不能产生进位。ADDAX,85HAX=?ADDAX,93HAX=?注意:

在进行数据传送或运算时,要注意指令的操作数的位数要匹配。例:数据位数不匹配的指令

MOV AX,BL MOV BH,AX MOV AL,20000 ADD AL,100H练习:使用4条指令计算2的4次方四、物理地址

我们给每个存储单元给了唯一的一个编号,这个编号就是这个内存单元的物理地址。在8086/8088CPU中对外有20根地址线寻址,所以其系统中的内存单元物理地址为20位的地址编号。地址总线内存......20根线,每根可表0/1,总共可表多少数?即为地址编号总数。存储单元按序编号,即为其物理地址。00000HFFFFFH是否给我们这样一个概念?寻址功能输入:20位二进制串(地址)输出:8/16位二进制串(数值)8086具有20根地址总线,16根数据总线五、16位结构的CPU16位机:运算器一次最多可以处理16位的数据。寄存器的最大宽度为16位;寄存器和运算器之间的通路为16位。六、8086CPU给出物理地址的方法1)CPU中的段寄存器(CS)提供段地址,指令指针寄存器(IP)提供偏移地址;2)段地址和偏移地址通过内部总线送入地址加法器;3)地址加法器将两个16位地址合成一个20位的物理地址;4)地址加法器将20位的物理地址送输入输出控制电路;5)输入输出控制电路将20位物理地址送上外部地址总线;6)地址总线将20位物理地址送入内存,寻址。其他部件地址加法器输入输出控制电路偏移地址段地址16位物理20位内存20位物理地址8位数据总线16位控制总线CPU物理地址=段地址×16+偏移地址=段地址(左移4位)+偏移地址8088CPU访问内存单元工作过程

访问地址为123C8H的内存单元时,地址加法器的工作过程(数据皆为十六进制表示)CSIP寄存器组地址加法器1230H00C8H相关部件提供段地址和偏移地址段地址和偏移地址送入地址加法器123000C8段地址左移4位(×

16)1230000C812300+00C8123C8段地址+偏移地址形成20位物理地址输出20位物理地址123C8H地址加法器的工作过程段地址:×16=左移4位(2进制)=左移1位(16进制)左移位数二进制十六进制十进制010B2H22×201100B4H42×2121000B8H82×22310000B10H162×234100000B20H322×24一个数据的二进制形式左移N位,相当于该数据乘以2N加法器左移4位相当于乘以24(16)七、“段地址×16+偏移地址=物理地址”的本质含义

本质含义:CPU在访问内存时,用一个基础地址(段地址×16)和一个相对于基础地址的偏移地址相加,给出了内存单元的物理地址。八、段的概念

段是我们为了管理内存而引入的一个虚拟的概念,我们可以将内存地址连续、起始地址为16的倍数的一组内存单元看作一个段来管理,但事实上,内存并没有被真正划分成段。注:段地址×16必然是16的倍数,所以一个段的起始地址一定是16的倍数(即:XXXX0H);偏移地址为16位,所以一个段的长度最大为64KB。思考:观察下面的地址物理地址 段地址 偏移地址21F60H 2000H 1F60H 2100H 0F60H 21F0H 0060H 21F6H 0000H 1F00H 2F60HCPU可以用不同的段地址和偏移地址形成同一个物理地址。从这里可看出,分段仅仅是一个虚拟的概念。如果给定一个段地址,仅通过变化偏移地址来进行寻址,最多可定位多少内存单元?九、段寄存器

在CPU中提供段地址的寄存器符号名称作用配合寄存器CS代码段提供(程序、指令)段地址IPDS数据段用于存放数据的存储器段的起始地址。(包含程序使用的大部分数据的存储区域)SS堆栈段定义堆栈的存储区SPES附加段存放附加存储器段的段地址。常用于存放数据或串操作中作目标数据段十、CS和IPCS—代码段:提供当前要执行的指令的段地址。IP—指令指针寄存器:指向当前要执行的指令的偏移地址。

由CS和IP分别提供一个16位的段地址和偏移地址,经地址加法器合成一个20位的物理地址,该地址为当前要执行的指令所在的位置(CS:IP)。AXBX其他部件CSIP指令缓冲器执行控制器地址加法器输入输出控制电路2000A20009D8200080120007D820006892000500200040320003BB2000201200012320000B8CPU内存地址总线数据总线Movax,0123HMovbx,0003HMovax,bxAddax,bx若当前CPU中的状态为:CS=2000,IP=00002000000020000200002000020000B82301B82301000100020003000320003B8230120003B823012000320003BB03000123BB0300000620006B9D8000800032000801D8000A00032000A0006AXBX其他部件CSIP指令缓冲器执行控制器地址加法器输入输出控制电路2000A20009D8200080120007D820006892000500200040320003BB2000201200012320000B8CPU内存地址总线数据总线Movax,0123HMovbx,0003HMovax,bxAddax,bx(1)从CS:IP指向内存单元读取指令,读取的指令进入指令缓冲器;IP+nN=所取指令的长度。(2)IP=IP+N,从而指向下一条指令;(3)执行和处理取到的指令,重复步骤(1)由CS:IP指向CPU将要执行的指令所在的物理地址,取到指令后,IP会自动增加N指向下一条指令所在的位置;从而使计算机能够自动连续的执行一个完整的程序。十一、修改CS、IP的指令若想同时修改CS、IP的内容,可用jmp 段地址:偏移地址指令例:

jmp 2AE3:3则CS=2AE3H,IP=0003H若只修改IP的内容,可用jmp某一合法寄存器 指令例:jmpAX则执行后IP=AX注意:CS和IP不充许直接赋值。MOVCS,1000HMOVCS,AXMOVIP,2000HA6622B8E3FFD88B0000B80123B820005H20006H20004HJmp1000:320003H20009HMovcx,ax20008H20007H20002H20001HMovax,6622H20000H10009HJmpbx10008H10007HMovbx,ax10006H10005H10004HMovax,0000H10003H10002H10001HMovax,0123H10000H已知:CPU的初始状态:CS=2000H,IP=0000H,内存单元情况见右表,试分析指令

温馨提示

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

最新文档

评论

0/150

提交评论