《微型计算机的结构(CPU和内存)》由会员分享,可在线阅读,更多相关《微型计算机的结构(CPU和内存)(17页珍藏版)》请在人人文库网上搜索。

1、第三章 微型计算机的结构,本章要点 8086/8088CPU内部结构 8086/8088寄存器和标志 堆栈与存储器结构 寻址方式和指令系统,8086是16位字长的微处理器,8088的内部结构为16 位,外部数据总线8位,是准16位字长的微处理器,二者指令系统相同,均具有20位地址线,寻址能力达到1MB空间。,3.1 8086/8088的功能结构,next,BIU 和 EU 相互独立,可并行操作,构成指令流水线结构。,返回,3.2 8086/8088的寄存器结构,14个16位寄存器,分为4类。,(1)数据寄存器: 4个AX、 BX、 CX、 DX 计算过程中的常用寄存器 Go,(3) 段寄存器:。

2、 4个CS、 DS、 SS、 ES 存放段起始地址 Go,(2) 指针与变址寄存器: 4个SP、 BP、 SI、 DI 提供操作数的偏移地址 Go,(4) 控制寄存器: 2个IP、 F 提供指令的偏移地址; 保存条件码标志和控制标志 Go,next,AX(累加器 Accumulator): 主要的算术运算寄存器,专用于:乘、除法运算、十进制调整及I/O操作等操作。,返回,BX(基址寄存器 Base): 常用于存放存储区的起始地址。,CX(计数寄存器 Count): 常用作循环操作和字串处理的计数控制。,DX(数据寄存器 Data): 常与AX联用,做双字乘、除法时,DX存放高位字,AX存放低位。

3、字。此外在I/O操作时提供外部设备接口的端口地址。,CS(代码段地址寄存器 Code Segment): 存放代码段的起始地址。代码段存放当前正在运行的程序,返回,DS(数据段地址寄存器 Data Segment): 存放数据段的起始地址。数据段存放当前正运行的程序所用的数据。,SS(堆栈段地址寄存器 Stack Segment): 存放堆栈段的起始地址。堆栈段是定义堆栈的存储区。,ES(附加段地址寄存器 Extra Segment): 存放附加段的起始地址。附加段是附加的数据段,作为辅助数据区存放当前正运行程序所用的数据。,SP(栈顶指针寄存器 Stack Pointer): 提供堆栈栈顶单。

4、元的偏移地址。与SS段寄存器联用,控制数据进栈和出栈。,BP(基址指针寄存器 Base Pointer): 常用于提供堆栈内某个单元的偏移地址。与SS段寄存器联用,访问堆栈中的任一个存储单元。,SI(源变址寄存器 Source Index): 与DS段寄存器联用,可以访问数据段中的任一个存储单元。,DI(目的变址寄存器 Destination Index): 与ES段寄存器联用,可访问附加段中的任一个存储单元。,SI、DI也常用于在字串操作中提供偏移地址,并具有地址自动增量或减量的功能。,返回,IP(指令指针寄存器 Instruction Pointer): 存放代码段中指令的偏移地址。在程序。

5、执行过程中,始终自动给出下一条要取的指令的偏移地址。 IP与CS段寄存器联用,可以确定下一条要取的指令的物理地址,因此IP是很重要的控制寄存器,用于控制程序的执行流程。,F(标志寄存器 Flags): 用于存放反映处理器和运行程序执行结果状态的控制标志和条件码标志。 F中共有9个标志位:6个条件码标志位,3个控制标志位。,OF 溢出标志:计算结果溢出时,OF=1,否则 OF=0。,SF 符号标志:计算结果小于0时,SF=1,否则 SF=0。,ZF 零标志:计算结果等于0时,ZF=1,否则 ZF=0。,CF 进位/借位标志:最高有效位有进位或借位时,CF=1,否则 CF=0。,AF 辅助进位/借。

6、位标志,半字节进位/借位标志,PF 奇偶标志,DF 方向标志,控制串操作中的地址增减。DF=0,地址增;DF=1,地址减。,IF 中断标志,IF=1,开中断;IF=0,关中断。,TF 陷阱标志,TF=1,CPU单步方式下执行程序,TF=0,CPU正常工作。,3个控制标志位:,6个条件码标志位:,0 0 0 0 0 0 1 1,PF=1,0 0 0 0 1 0 1 1,PF=0,返回,3.3 堆栈与存储器结构,(1) 堆栈,堆栈的固定端称为栈底, 在存储器的高地址端,活动端称为栈顶,数据的存取以先进后出原则在栈顶进行。SP栈顶指针寄存器始终保存栈顶地址,指向栈顶。,随着进栈数据的增多,堆栈从高地。

7、址向低地址方向扩展。,低地址,高地址,新栈顶,(2) 存储器结构,在存储器中,最小的存储单位是字节,每个字节单元用一个无符号二进制数编地址,从0开始编址。书写存储单元地址时用十六进制形式。,BH,BL,栈顶,64K存储器单元的编址方法如图所示。,低字节,高字节,字单元,字节单元,低地址字节单元,高地址字节单元,低字节存低地址单元, 高字节存高地址单元。,例: 将3456H存入地址为0005H的字单元中。,56,34,一个存储器单元的物理地址由段地址和偏移地址形成。,问题:为什么要分段地址和偏移地址呢?,16位寄存器不能提供20位的物理地址,解决问题的办法:存储器分段管理,将存储器分段,每段最大。

8、不超过64KB,段内单元地址可用16位表示,称为偏移地址。每段的起始地址称为段地址(也称为段基址)。,段地址如何表示?,规定段地址必须能够被16整除,按20位地址对1M存储器编址如下:,0000 0H 00001H 00002H 0000EH 0000FH 0001 0H 00011H 00012H 0001EH 0001FH 0002 0H 00021H 00002H 0002EH 0002FH FFFF 0H FFFF1H FFFF2H FFFFEH FFFFFH,20位物理地址的形成方法:,20位物理地址=16位段地址左移4位(段地址16)+ 16位偏移地址,+,例:,已知一个存储单元的。

9、段地址为3200H,偏移地址为1210H,其物理地址是多少?,0011 0010 0000 0000 | 0000,0011 0011 0010 0001 0000,32000H,+ 1210H,33210H,0000,段内偏移量,偏移地址,=,段起始地址,30000H,段内偏移量,偏移地址,=,段起始地址,40000H,存储器分段管理的地址概念图示:,30000H + 0FFFH =,30FFFH 物理地址,0FFFH,可以对代码段、数据段、附加段和堆栈段各段按需要灵活地进行存储区分配。(图),存储器分段法的优点:,(2) 将代码、数据存放在不同的内存区,便于程序重定位。,(1) 使16位寄。

10、存器最终可以提供20位物理地址;,访问存储器单元时,寄存器的联用方式: (图),next,200FH,返回,返回,寄存器与存储器的比较: 寄 存 器 存 储 器,在CPU内部 在CPU外部 访问速度快 访问速度慢 容量小,成本高 容量大,成本低 用名字表示 用地址表示 没有地址 地址可用各种方式形成,本章要求: (1) 了解CPU的功能结构,重点掌握寄存器的结构和各寄存器的一般用途和专门用途,寄存器的默认联用方式; (2)熟悉存储器的结构,理解编址方法和存储数据的方法,重点掌握段的划分和存储器单元物理地址的形成方法; (3)熟悉堆栈的结构,理解堆栈先进后出的存取方法,堆栈指针SP的作用。,小 结。

微型计算机内存采用什么结构,微型计算机的结构(CPU和内存)相关推荐

  1. linux中查看cpu和内存的命令,Linux系统如何查看cpu和内存信息

    Linux系统,其实并不是很多人都在使用,所以很多人第一次接触这个系统,很多操作都不会,下面就让学习啦小编教大家Linux系统如何查看cpu和内存信息吧. Linux系统查看cpu和内存信息的方法 右 ...

  2. linux创建云主机内存不足,云主机DC2 Linux系统CPU与内存占用率高导致无法登录

    本文档介绍 Linux 云服务器因 CPU 与内存占用率高导致无法登录等问题的排查方法和解决方案. 登录与查看系统负载登录云服务器.通过第三方软件远程登录 Linux 云服务器( Linux 云服务器 ...

  3. python运行过程中占用内存越来越大_Python 程序运行时CPU和内存高解决思路

    这篇文章是基于上篇文章的续章~ 一台机器要部署很多爬虫,每天定时执行的情况下,服务器CPU和内存占比较高的情况出现后 模拟一份代码,进行分析. 一个简单的爬虫程序,爬取10页数据共计150条,每天定时 ...

  4. linux 看内存和硬盘型号,Linux下查看CPU、内存和硬盘型号及相关信息命令

    Linux下查看CPU.内存和硬盘信息命令 在Linux的桌面版本中,查看这些东西的确很方便,有图形化的工具可使用.可是在Linux服务器版上,或者远程ssh链接的时候,就没有图形化的界面能够操做了. ...

  5. 计算机内存怎么与频率匹配,怎么算cpu与内存频率匹配

    2018-03-02 在286.386和早期的486电脑里,CPU的速度不是太高,和内存保持一样的速度.后来随着CPU速度的飞速提升,内存由于电气结构关系,无法象CPU那样提升很高的速度(就算现在内存 ...

  6. java cpu 内存_如何检查Java中的CPU和内存使用情况?

    如果你专门在JVM内存中寻找: Runtime runtime = Runtime.getRuntime(); NumberFormat format = NumberFormat.getInstan ...

  7. linux 进程内存开销,linux下查看最消耗CPU、内存的进程

    1.CPU占用最多的前10个进程: ps auxw|head -1;ps auxw|sort -rn -k3|head -10 2.内存消耗最多的前10个进程 ps auxw|head -1;ps a ...

  8. linux 内存强度测试软件,linux下的CPU、内存、IO、网络的压力测试工具与方法介绍...

    使用工具stress Centos # yum -y install stress Ubantu # apt-get install stress # stress --help `stress' i ...

  9. linux监控cpu内存磁盘网络使用率,linux服务器性能——CPU、内存、流量、磁盘使用率的监控...

    4. 什么是AJAX 术语Ajax用来描述一组技术,它使浏览器可以为用户提供更为自然的浏览体验.在Ajax之前,Web站点强制用户进入提交/等待/重新显示范例,用户的动作总是与服务器的"思考 ...

  10. 3 万字 51 张图教你 CPU、内存、操作系统硬核知识!

    作者|cxuan 来源 |Java建设者(ID:javajianshe) 我们每个程序员或许都有一个梦,那就是成为大牛,我们或许都沉浸在各种框架中,以为框架就是一切,以为应用层才是最重要的,你错了.在 ...

最新文章

  1. circlize包可绘制的几个图形示例
  2. git 命令使用技巧
  3. Linux rpm软件包管理工具常用命令示例
  4. 关于烂代码的那些事——什么是好代码
  5. 趣图:当我捕获Bug的时候
  6. java 课后习题 奇数排前
  7. 如何自学通过PMP?
  8. 2018年数学建模竞赛-高温作业专用服装设计
  9. 信息系统安全复习提纲
  10. ACS880变频器主从配置
  11. ubuntu18.04下载显卡驱动+CUDA+CUDNN
  12. uni-app:搜索关键词并高亮显示,可重复显示
  13. 【Tensorrt】Tensorrt C++部署YOLO v5报错记录 Version tag does not match. Note: Current Version: xxx, Serializ
  14. 电力需求侧管理及智能电力监控技术在电子设备制造行业错峰限电中的应用
  15. c语言表示反正弦函数,[原创]正弦和反正弦函数
  16. 一个故事带你看透HTTPS(上)
  17. 大厂程序员教你如何写简历(附简历模板)//简历、秋招、简历模板。经验分享、资源分享
  18. Web应用服务器tomcat
  19. [程序员学英语]英语发音规则
  20. 输入分钟输出小时python_python格式化输出时间

热门文章

  1. 西联汇款哪里取钱|怎么取钱
  2. python数据可视化—用pyecharts画雷达图
  3. 申请苹果公司版和企业版开发者账号注意事项
  4. 年均发电量超1亿度,浙江温岭首座潮光互补型光伏电站并网发电
  5. TSMaster入门 | 如何使用仿真ECU进行UDS刷写程序?
  6. SE-Resnet踩过的坑
  7. 【GoCN酷Go推荐】Go 系统监控利器-gopsutil
  8. 人生中第一份值得纪念的工作
  9. maya动画制作(5)——小男孩的各种姿态动画制作(续)(修改更新)
  10. NX二次开发 UFUN获得所有图纸页 UF_DRAW_ask_drawings