汇编解析(1)-内存寻址之实模型平面模式(real mode flat mode)(1)
一、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)相关推荐
- 汇编解析(2)-内存寻址之实模型平面模式(real mode flat mode)(2)
1.段可以开始于任何地址,在1M以内,但段地址必须可以整除16 2.20位地址表示1M的空间,需要用2个16位地址表示,因为8086和8088是16位CPU,16位寄存器. 3.实模式下,地址就由2部 ...
- 深入理解计算机系统-之-内存寻址(二)--存储保护机制(CPU实模式与保护模式)
cpu的保护模式由来 分段机制 8086的诞生,标志着Intel 正式进入了x86时代,这是个多么具有纪念意义的日子:1978-6-8.同时,8086的诞生也是处理器内存寻址技术的第一次飞跃. 对于一 ...
- 贺利坚老师汇编课程39笔记:用于内存寻址的寄存器同时引入BP
指路老师的博客 BP基址寄存器 只有BX,BP,SI,DI可以用在[-]对内存寻址,机器设定指令集规定好了 mov ax,[bx] mov ax,[bx+si] mov ax,[bx+di] mov ...
- 陈老师Linux内核内存寻址导学
<Linux内核分析与应用>第二章 : 内存寻址 从零打造自己的操作系统可能么? 学东西要追根溯源,因为树叶的东西太过繁多,而且不小心会被树叶带走.计算机的鼻祖到底是谁?图灵还是冯诺依曼, ...
- x64 结构体系下的内存寻址
转载请注明出处:http://www.cnblogs.com/lanrenxinxin/p/4735027.html 在阅读NewBluePill源码的时候,看内存的那一块简直头疼,全是x64下的寻址 ...
- 深入理解Linux内核-第3版 第二章 内存寻址 内核2.6.11 强调:本章出现参见其他章节的地方不做深究,留到看到对应章节时深究
本章介绍寻址技术.值得庆幸的是,操作系统自身不必完全了解物理内存:如今的微处理器包含的硬件线路使内存管理既高效又健壮,所以编程错误就不会对该程序之外的内存产生非法访问. 作为本书的一部分,本章将详细描 ...
- 深入理解Linux内核01:内存寻址
目录 1. 内存地址 1.1 三种地址 1.1.1 逻辑地址(logical address) 1.1.2 线性地址(linear address) 1.1.3 物理地址(physical addre ...
- Linux操作系统原理与应用02:内存寻址
目录 1. 内存寻址 1.1 X86寻址技术演变 1.1.1 8086引入段机制 1.1.2 80286引入保护模式 1.1.3 80386在段寄存器上构建保护模式 1.2 80x86寄存器简介 1. ...
- RV32I 基本指令集汇编解析
RV32I 基本指令集汇编解析@cctvjack 本文为作者自学RV用户指令集手册中RV32I基本指令集及其汇编格式的内容,参考RV 用户指令集手册.https://riscv.org/specifi ...
最新文章
- 游戏编程新手教程:怪物AI设计简述
- SQL语句之Insert
- 在ASP.NET Core中使用Apworks开发数据服务:对HAL的支持
- nlp3-有限自动机FLandFA
- CentOS 6.4 php环境配置以及安装wordpress
- v5服务器装系统,小白必学:宏基V5-591G内存、固态、装系统教程!
- PID算法基本原理及整定实现方法
- matlab中fprintf整数,matlab中fprintf函数的用法
- oracle中alter用法,Oraclealter用法
- 最新小程序反编译的获取流程
- java设计模式的六大原则
- Add Python Interpreter 报错 Error code:2. XX can‘t open file XX [Errno 2] No such file or directory
- 拦截器、过滤器、监听器
- L1-7 谷歌的招聘
- 做公关必用的四大法宝
- 公众号开发教程:微信视频预览一半就要收费是怎么做的
- 报错:FSADeprecationWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disab
- 软件打包安装工具第四篇(打包工具原理及技术)
- html静态网站基于动漫网站网页设计与实现共计4个页面
- Raft is not great?