第二章寄存器CPU工作原理下

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第二章寄存器(CPU工作原理)要点:CPU的组成寄存器字在寄存器中的存储简单的汇编指令物理地址和8086形成物理地址的机制段的概念和段寄存器Debug调试工具内存单元的物理地址每一个内存单元在内存空间中都有惟一的地址,这个惟一的地址称为该存储单元的物理地址。CPU通过地址总线送入存储器的必须是一个内存单元的物理地址。考虑:CPU如何产生20位的物理地址呢?16位结构的CPU8位机:8080,808516位机:808632位机:80386,80486N位结构的含义:运算器一次最多可以处理N位数据;寄存器的最大宽度为N位寄存器和运算器之间的通路是N位8086CPU形成物理地址的方法8086CPU的地址总线有20位,但8086CPU内部全为16位结构,如何来形成20位的物理地址呢?IBMPC机采用了存储器地址分段的办法存储器逻辑上的分段情况段(segment)从0地址开始,每16字节为一小段(paragraph)小段的首地址的16进制形式最低位为0段(segment)必须从任一小段的首地址开始,且每段大小可达64K段地址&偏移地址取段的首地址的高16位作为段地址段内相对于段起始地址的偏移值称为偏移地址CPU内部采用“段地址×16+偏移地址”来形成物理地址段地址用16位表示因段最大可达64K,故偏移地址也用16位表示注意:段大小是任意的8086CPU形成物理地址的方法20位物理地址=16位段地址*16+16位偏移地址8086CPU逻辑结构图形成物理地址的本质含义CPU在访问内存时,用一个基础地址和一个相对于基础地址的偏移地址相加,给出内存单元的物理地址。基础地址的选择是任意的。例如:物理地址21F60H,我们可以选取不同的段地址和偏移地址来形成给定一个段地址,通过变化偏移地址来进行寻址,最多可以定位多少内存单元呢?段寄存器提供段地址的寄存器称为段寄存器。8086CPU有4个段寄存器:CS、DS、SS、ESCS:代码段寄存器DS:数据段寄存器SS:堆栈段寄存器ES:附加段寄存器CS寄存器IP:指令指针寄存器CS和IP就指示了CPU当前要读取指令的地址设8086机中CS中内容为M,IP中内容为N,则8086CPU将从内存M*16+N单元开始,读取一条指令来执行我们又可以表示成CS:IP8086CPU的工作过程初始状态8086CPU的工作过程(续)CS,IP的内容送入地址加法器8086CPU的工作过程(续)物理地址送入输入输出控制电路8086CPU的工作过程(续)物理地址送入地址总线8086CPU的工作过程(续)机器指令被送入CPU8086CPU的工作过程(续)机器指令被送入指令缓冲器8086CPU的工作过程(续)读取指令后IP中的值自动增加8086CPU的工作过程(续)执行指令8086CPU的工作过程(续)指令执行结果8086CPU的工作过程(续)8086CPU的工作过程可以简要描述如下:1.从CS:IP指向的内存单元处读取指令,读取的指令进入指令缓冲器;2.IP=IP+所读取指令的长度,从而指向下一条指令;3.执行指令,转到步骤1,重复这个过程。修改CS、IP的指令movcs,123注意:mov指令不能用于设置CS、IP的值能够改变CS、IP的内容的指令被统称为转移指令一个转移指令:jmp指令?×jmp指令jmp段地址:偏移地址指令含义:用指令中给出的段地址修改CS,偏移地址修改IPjmp2AE3:3,执行后:CS=2AE3,IP=0003jmp3:0B16,执行后:CS=0003,IP=0B16jmp寄存器指令含义:用指令中的寄存器中的值修改IP注意:CS的值不变其中的寄存器只能是通用寄存器问题2.3内存中存放的机器码和对应的汇编指令如下所示,设CPU初始状态:CS=2000H,IP=0000H,请写出指令的执行序列。结果分析指令执行序列1.movax,66222.jmp1000:33.movax,00004.movbx,ax5.jmpbx6.movax,0123H7.转到第3步执行代码段存放当前正在运行的程序代码的段(segment)例如:其段地址为2000H,长度为10字节一条简单的算术指令sub格式:sub目的操作数,源操作数操作:目的操作数=目的操作数-源操作数例:subax,8subax,bx本章小结了解CPU的组成;掌握各种寄存器,尤其是通用寄存器;理解字在寄存器中的存储;掌握几条简单的汇编指令;掌握8086CPU的物理地址的形成;了解段寄存器,掌握CS和IP的合用;掌握jmp指令;熟悉Debug调试工具;作业检测点2.2,2.3Debug命令D命令——Display使用D命令查看内存中的内容格式1:d段地址:偏移地址•功能:列出从指定内存单元开始的128个内存单元的内容格式2:d段地址:起始偏址结尾偏址使用多种不同的段地址和偏移地址来查看同一个物理地址的内容E命令——Enter改写内存中的内容格式:e起始地址数据数据数据………或者可以用E命令提问的方式来逐个修改从某地址开始的内存单元的内容E命令可以向内存中写入机器码U命令将机器码反汇编成汇编指令格式:u段地址:偏移地址Debug命令小结A命令:以汇编指令形式在内存中写入机器指令D命令:以16进制形式显示一块内存区域的内容E命令:对指定的内存单元的内容进行改写R命令:以16进制显示寄存器的内容T命令:执行一条指令U命令:反汇编机器码到汇编指令Q命令:退出Debug

1 / 35
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功