8086存储器和IO组织【微机原理】

简介: 8086存储器和IO组织【微机原理】

8086存储器

1.8086/8088存储空间

8086/8088有20条地址线,可直接对1M个存储单元进行访问,。每个存储单元存放一

个字节型数据,且每个存储单元有一个20位的地址,这1M个存储单元对应的地址为

00000H~FFFFFH,如图3.10所示


一个存储单元中存放的信息称为该存储单元的内容。如图3.10所示,00001H单元的内容为9FH,记为:(00001H)=9FH


若存放的是字型数据(16位二进制数),则将字的低位字节存放在低地址单元,高位字节存放在高地址单元。如从地址0011FH开始的两个连续单元中存放一个字型数据,则该数据为DF46H,记为:(0011FH)=DF46H


若存放的是双字型数据(32位二进制数,这种数一般作为地址指针,其低位字是被寻址地址的偏移量,高位字是被寻址地址所在段的段地址),这种类型的数据要占用连续的4个存储单元。同样,低字节存放在低地址单元,高字节存放在高地址单元。如从地址E800AH开始的连续4个存储单元中存放了一个双字型数据,则该数据为66A65E65H,记为:(E800AH)=66A65E65H.

2.存储器的段结构

用户编写的程序(包括指令代码和数据)被分别存储在代码段、数据段、堆栈段和附加数据段中,这些段的段地址分别存储在段寄存器CS、DS、SS和ES中,而指令或数据在段内偏移地址可由对应的地址寄存器或立即数形式的位移量给出,如表3.8所示。

如果从存储器中读取指令,则段地址来源于代码段寄存器CS,偏移地址来源于指令指针寄存器IP。

如果从存储器读/写操作数,则段地址通常由数据段寄存器DS提供(必要时可通过指令 前缀实现段超越,将段地址指定为由CS、ES或SS提供),偏移地址则要根据指令中所给出的寻址方式确定,这时,偏移地址通常由寄存器BX、SI、DI以及立即数形式的位移量等提 供,这类偏移地址也被称为“有效地址”(EA)。如果操作数是通过基址寄存器BP寻址的, 则此时操作数所在段的段地址由堆栈段寄存器SS提供(必要时也可指定为CS、SS或ES)(详见第4章“寻址方式”一节)。

如果使用堆栈操作指令(PUSH或POP)进行进栈或出栈操作,以保护断点或现场,则段地址来源于堆栈段寄存器SS,偏移地址来源于堆栈指针寄存器SP(详见本节“4.堆栈 操作”)。

如果执行的是字符串操作指令,则源字符串所在段的段地址由数据段寄存器DS提供 (必要时可指定为CS、ES或SS),偏移地址由源变址寄存器SI提供;目的字符串所在段的 段地址由附加数据段寄存器ES提供,偏移地址由目的变址寄存器DI提供。

  • 以上这些存储器操作时段地址和偏移地址的约定是由系统设计时事先已规定好的,编写程序时必须遵守这些约定。

3.逻辑地址与物理地址

  • 逻辑地址:段地址:偏移地址
  • 物理地址:段地址x10h+偏移地址
  • 存储单元的逻辑地址不是唯一的,即一个存储单元只有唯一确定的物理地址,但可以有一个或多个逻辑地址

4.堆栈操作

开辟堆栈的目的主要有以下两点:

(1)存放指令操作数(变量)

(2)保护断点和现场



CPU发展

CPU型号大全总结

相关文章
|
安全 网络协议 Java
Thread类的用法 && 线程安全 && 多线程代码案例 && 文件操作和 IO && 网络原理初识 &&UDP socket
Thread类的用法 && 线程安全 && 多线程代码案例 && 文件操作和 IO && 网络原理初识 &&UDP socket
206 0
|
12月前
|
监控 应用服务中间件 Linux
掌握并发模型:深度揭露网络IO复用并发模型的原理。
总结,网络 I/O 复用并发模型通过实现非阻塞 I/O、引入 I/O 复用技术如 select、poll 和 epoll,以及采用 Reactor 模式等技巧,为多任务并发提供了有效的解决方案。这样的模型有效提高了系统资源利用率,以及保证了并发任务的高效执行。在现实中,这种模型在许多网络应用程序和分布式系统中都取得了很好的应用成果。
314 35
|
消息中间件 监控 算法
用Apifox调试Socket.IO接口,从原理到实践
传统HTTP协议"请求-响应"的离散式通信机制已难以满足需求,这正是Socket.IO这类实时通信框架的价值所在。
用Apifox调试Socket.IO接口,从原理到实践
|
设计模式 缓存 Java
【Java技术专题】「入门到精通系列教程」深入探索Java特性中并发编程体系的原理和实战开发指南( 实现可伸缩IO专题)— 上
【Java技术专题】「入门到精通系列教程」深入探索Java特性中并发编程体系的原理和实战开发指南( 实现可伸缩IO专题)— 上
176 0
|
算法
GreenPlum AOCO列存读IO原理
GreenPlum AOCO列存读IO原理
266 0
|
缓存 Java 数据库
深入理解 Java IO 流:原理与应用
【4月更文挑战第4天】Java IO 浴是处理文件和数据输入输出的关键,涉及数据传输和处理。核心概念包括输入流(从源头读取)和输出流(写入目标),由InputStream和OutputStream接口定义基础操作。具体实现如FileInputStream和FileOutputStream用于文件操作,BufferedInputStream和BufferedOutputStream提升性能。IO流广泛应用于文件操作、网络通信、数据库交互和系统交互。其优点在于灵活性、可扩展性和高效性。使用时注意关闭流、处理异常及选择合适流实现。理解IO流原理和应用能提升编程效率和程序性能。
430 1
|
存储 缓存 NoSQL
Redis为什么速度快:数据结构、存储及IO网络原理总结
Redis为什么速度快:数据结构、存储及IO网络原理总结
|
传感器 编解码 C语言
【软件设计师备考 专题 】IO设备、通信设备的性能,以及基本工作原理
【软件设计师备考 专题 】IO设备、通信设备的性能,以及基本工作原理
291 1
|
Java 大数据 数据库
【Spring底层原理高级进阶】Spring Batch清洗和转换数据,一键处理繁杂数据!Spring Batch是如何实现IO流优化的?本文详解!
【Spring底层原理高级进阶】Spring Batch清洗和转换数据,一键处理繁杂数据!Spring Batch是如何实现IO流优化的?本文详解!
|
NoSQL 架构师 网络协议
Redis系列-15.Redis的IO多路复用原理解析(上)
Redis系列-15.Redis的IO多路复用原理解析
788 1