一、8080CPU

1、8位CPU,16位地址线
2、寻址范围64K
3、寻址方案:
16位地址的地址线,取出所在的8位内容(一个字节)

一个字节存储8位无符号数,储存的数值范围为0-255。
4、使用CP/M80操作系统
CP/M(微型计算机控制程序)是数字研究公司(1991年被Novell所兼并)在1974年开发,为8位CPU(如Intel 8080、Zilog Z80等)的个人电脑(PC)所设计的操作系统。

一个最小的8位CP / M系统需要以下硬件组件:

一个使用ASCII字符集的计算机终端
英特尔8080(以及后来的8085)或Zilog公司的Z80微处理器
至少有16千字节的RAM
可引导的磁盘
至少有一个软盘驱动器

在8位版本中,CP/M的系统组件加载至主存中。系统组件分为3个部分:

基本输入输出系统(BIOS)
基本磁盘的操作系统(BDOS)
控制台命令处理器(CCP)。
BIOS和BDOS常驻在主存中,而CCP常驻在主存中,除非应用程序覆盖,在这种情况下,它会自动重新加载应用程序完成后运行。还提供了大量标准工具命令。命令以.COM扩展名存储在磁盘上。 BIOS直接控制硬件构造(例如CPU和主存),它提供文字输入输出、磁盘扇区读写等功能。BDOS运行CP/M文件系统和一些输入输出操作(例如重定向)。CCP提供用户命令行并直接运行它们(内部命令例如DIR显示一个文件夹中的文件,或者ERA删除一个文件),或者读取、起动一个可执行档。

8080主要使用的操作系统是CP/M-80,到8086的时候,实际寻址范围是8080的16倍,但是英特尔将8086创建为可让程序只占用1M内存中的64K字节段,好像完全是小型的8080内存系统,直接影响到后来的段寄存器设计。

二、8086,8088CPU

1、8080的内存模式非常简单,以至于需要在8086中运行8080程序时,作出兼容性牺牲设计,引入了段寄存器。
2、可将8080程序快速改为8086程序,通过段寄存器,只占用1M内存中的64K字节内存段,模拟了8080CPU的内存模式。
通过CS(code segment)代码段寄存器实现这一过程,它指向了1M内存中的64K字节内存段的起始地址。
3、那么需要使用64K以上内存,就需要更改段寄存器的地址,每次使用64k内存,进入和离开段寄存器指向的内存段起始地址。
4、 1M字节的使用
(1)大小为:2202^{20}220或16516^5165字节,因此需要20根地址线
(2)内存地址从0开始,即从000000H到0FFFFH

三、386以及以后CPU

1、4M内存空间
2、32位CPU为4GB
3、但为了兼容8086、8088的DOS程序,仍需要做出特别的设计,奔腾级别的CPU使用虚拟86模式(virtual-86 mode)运行实模式段模型程序。
4、实模式段模型下,CPU只使用了20根地址线,即使它有32根地址线或更多,以64KB为块单位对内存进行操作,最多可使用1MB直接寻址内存。

四、段寄存器

1、16个字节容量
2、一个段可以小于或等于64K,但是不能大于64K,前面提过,这是与8086的兼容设计,16位地址。

汇编解析(1)-内存寻址之实模型平面模式(real mode flat mode)(1)相关推荐

  1. 汇编解析(2)-内存寻址之实模型平面模式(real mode flat mode)(2)

    1.段可以开始于任何地址,在1M以内,但段地址必须可以整除16 2.20位地址表示1M的空间,需要用2个16位地址表示,因为8086和8088是16位CPU,16位寄存器. 3.实模式下,地址就由2部 ...

  2. 深入理解计算机系统-之-内存寻址(二)--存储保护机制(CPU实模式与保护模式)

    cpu的保护模式由来 分段机制 8086的诞生,标志着Intel 正式进入了x86时代,这是个多么具有纪念意义的日子:1978-6-8.同时,8086的诞生也是处理器内存寻址技术的第一次飞跃. 对于一 ...

  3. 贺利坚老师汇编课程39笔记:用于内存寻址的寄存器同时引入BP

    指路老师的博客 BP基址寄存器 只有BX,BP,SI,DI可以用在[-]对内存寻址,机器设定指令集规定好了 mov ax,[bx] mov ax,[bx+si] mov ax,[bx+di] mov ...

  4. 陈老师Linux内核内存寻址导学

    <Linux内核分析与应用>第二章 : 内存寻址 从零打造自己的操作系统可能么? 学东西要追根溯源,因为树叶的东西太过繁多,而且不小心会被树叶带走.计算机的鼻祖到底是谁?图灵还是冯诺依曼, ...

  5. x64 结构体系下的内存寻址

    转载请注明出处:http://www.cnblogs.com/lanrenxinxin/p/4735027.html 在阅读NewBluePill源码的时候,看内存的那一块简直头疼,全是x64下的寻址 ...

  6. 深入理解Linux内核-第3版 第二章 内存寻址 内核2.6.11 强调:本章出现参见其他章节的地方不做深究,留到看到对应章节时深究

    本章介绍寻址技术.值得庆幸的是,操作系统自身不必完全了解物理内存:如今的微处理器包含的硬件线路使内存管理既高效又健壮,所以编程错误就不会对该程序之外的内存产生非法访问. 作为本书的一部分,本章将详细描 ...

  7. 深入理解Linux内核01:内存寻址

    目录 1. 内存地址 1.1 三种地址 1.1.1 逻辑地址(logical address) 1.1.2 线性地址(linear address) 1.1.3 物理地址(physical addre ...

  8. Linux操作系统原理与应用02:内存寻址

    目录 1. 内存寻址 1.1 X86寻址技术演变 1.1.1 8086引入段机制 1.1.2 80286引入保护模式 1.1.3 80386在段寄存器上构建保护模式 1.2 80x86寄存器简介 1. ...

  9. RV32I 基本指令集汇编解析

    RV32I 基本指令集汇编解析@cctvjack 本文为作者自学RV用户指令集手册中RV32I基本指令集及其汇编格式的内容,参考RV 用户指令集手册.https://riscv.org/specifi ...

最新文章

  1. 游戏编程新手教程:怪物AI设计简述
  2. SQL语句之Insert
  3. 在ASP.NET Core中使用Apworks开发数据服务:对HAL的支持
  4. nlp3-有限自动机FLandFA
  5. CentOS 6.4 php环境配置以及安装wordpress
  6. v5服务器装系统,小白必学:宏基V5-591G内存、固态、装系统教程!
  7. PID算法基本原理及整定实现方法
  8. matlab中fprintf整数,matlab中fprintf函数的用法
  9. oracle中alter用法,Oraclealter用法
  10. 最新小程序反编译的获取流程
  11. java设计模式的六大原则
  12. Add Python Interpreter 报错 Error code:2. XX can‘t open file XX [Errno 2] No such file or directory
  13. 拦截器、过滤器、监听器
  14. L1-7 谷歌的招聘
  15. 做公关必用的四大法宝
  16. 公众号开发教程:微信视频预览一半就要收费是怎么做的
  17. 报错:FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disab
  18. 软件打包安装工具第四篇(打包工具原理及技术)
  19. html静态网站基于动漫网站网页设计与实现共计4个页面
  20. Raft is not great?

热门文章

  1. cell重用的几种方式
  2. MIN()与MAX()函数 的注意事项
  3. Java程序员转Android开发必读经验
  4. Dev 等待提示 WaitDialogForm 升级版
  5. 枚举类型(C# 编程指南)
  6. JavaWeb_检查用户是否登录的过滤器
  7. python小白——进阶之路——day6天---字符串相关相关函数,格式化(format)
  8. Android UI(三)SlidingMenu实现滑动菜单(详细 官方)
  9. HDU-3280 Equal Sum Partitions
  10. 美国人跨入中产行列的6个指标。