寄存器CPU工作基本原理下.ppt

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 寄存器 (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位的物理地址呢? IBM PC机采用了存储器地址分段的办法 存储器逻辑上的分段情况 段(segment) 从0地址开始,每16字节为一小段(paragraph) 小段的首地址的16进制形式最低位为0 段(segment)必须从任一小段的首地址开始,且每段大小可达64K 段地址偏移地址 取段的首地址的高16位作为段地址 段内相对于段起始地址的偏移值称为偏移地址 CPU内部采用“段地址×16+偏移地址”来形成物理地址 段地址用16位表示 因段最大可达64K,故偏移地址也用16位表示 注意:段大小是任意的 8086CPU形成物理地址的方法 20位物理地址=16位段地址*16+16位偏移地址 形成物理地址的本质含义 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:IP 8086CPU的工作过程 初始状态 8086CPU的工作过程(续) CS,IP的内容送入地址加法器 8086CPU的工作过程(续) 物理地址送入输入输出控制电路 8086CPU的工作过程(续) 物理地址送入地址总线 8086CPU的工作过程(续) 机器指令被送入CPU 8086CPU的工作过程(续) 机器指令被送入指令缓冲器 8086CPU的工作过程(续) 读取指令后IP中的值自动增加 8086CPU的工作过程(续) 执行指令 8086CPU的工作过程(续) 指令执行结果 8086CPU的工作过程(续) 8086CPU的工作过程可以简要描述如下: 从CS:IP指向的内存单元处读取指令,读取的指令进入指令缓冲器; IP=IP+所读取指令的长度,从而指向下一条指令; 执行指令,转到步骤1,重复这个过程。 修改CS、IP的指令 mov cs,123 注意:mov指令不能用于设置CS、IP的值 能够改变CS、IP的内容的指令被统称为转移指令 一个转移指令:jmp指令 jmp指令 jmp 段地址:偏移地址 指令含义:用指令中给出的段地址修改CS,偏移地址修改IP jmp 2AE3:3,执行后:CS=2AE3,IP=0003 jmp 3:0B16,执行后:CS=0003,IP=0B16 jmp 寄存器 指令含义:用指令中的寄存器中的值修改IP 注意:CS的值不变 其中的寄存器只能是通用寄存器 问题2.3 内存中存放的机器码和对应的汇编指令如下所示,设CPU初始状态:CS=2000H,IP=0000H,请写出指令的执行序列。 结果分析 指令执行序列 mov ax,6622 jmp 1000:3 mov ax,0000 mov bx,ax jmp bx mov ax,0123H 转到第3步执行 代码段 存放当前正在运行的程序代码的段(segment) 例如: 其段地址为2000H, 长度为10字节 一条简单的算术指令sub 格式:sub 目的操作数,源操作数 操作:目的操作数=目的操作数-源操作数 例:sub ax,8 sub ax,bx 本章小结 了解CPU的组成; 掌握各种寄存器,尤其是通

文档评论(0)

beautyeve + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档