热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

微机原理--第二章(4)8086的存储器编址和I/O编址

1)存储器编址由于微处理器内部的寄存器和ALU都是16位的,为了方便20位的地址管理,在8086对存储器管理的设计中,采用了分段管理的技术。采用分段方法进行编址的优点:减少

1)存储器编址

  • 由于微处理器内部的寄存器和ALU都是16位的,为了方便20位的地址管理,在8086对存储器管理的设计中,采用了分段管理的技术。
  • 采用分段方法进行编址的优点:
  • 减少指令长度,提高指令执行速度。
  • 为程序的浮动装配创造了条件。

    (1)物理地址和逻辑地址

  • 对应每个物理存储单元都有一个唯一的20位编号,就是物理地址,从00000H~FFFFFH。

  • 用户编程时,采用逻辑地址,形式为: 段地址 : 偏移量
  • 一个存储单元具有一个唯一的物理地址,但具有多个逻辑地址。
    (2)逻辑地址转换为物理地址
    将逻辑地址中的段地址左移4位,加上偏移量就得到20位物理地址。
    (3)段寄存器使用时的一些基本约定
    这里写图片描述
    (4)段分配方式

  • 8086对逻辑段要求:

    每个段最大限制为64KB
    段地址的低4位为0000B
    各段可以独立占用64KB存储区,各段也可以允许重叠

  • 1MB空间最多能分成64K段

  • 1MB空间最少能分成16个段

(5)8086系统几个固定使用的区域
00000H~003FFH:中断向量表
B0000H~B0F9FH:单色显示器的显示缓冲区
B8000H~BBF3FH:彩色显示器的显示缓冲区
FFFF0H~FFFFFH:无条件转移指令

2)I/O编址

  1. 8086允许有65536(64K)个8位的I/O端口,两个编号相邻的8位端口可以组合成一个16位的端口。(BHE#=0、A0=0)
  2. 8086的I/O可采用独立编址方式
    - I/O地址空间:64K
    - 端口地址范围:0000~FFFFH
    - 8位/16位端口
    - 对I/O端口操作时,需要用专门的指令进行操作,并且只能够通过累加器(AL或AX)来完成。
    -
  3. 8086的I/O亦可采用统一编址方式

推荐阅读
  • 抖音情侣空间纪念日修改指南
    本文详细介绍如何在抖音情侣空间中修改在一起的时间,帮助用户轻松设置或更改纪念日。 ... [详细]
  • 本文详细介绍了Python中列表的创建、访问、修改、排序及遍历等基本操作,帮助初学者快速掌握列表这一重要数据结构。 ... [详细]
  • Python 学习是否需要先掌握 C 语言?
    Python 是一门非常适合编程入门的语言,很多人疑惑是否需要先学习 C 语言才能更好地掌握 Python。本文将详细探讨这个问题,并为初学者提供专业的建议。 ... [详细]
  • 本文详细探讨了HTML表单中GET和POST请求的区别,包括它们的工作原理、数据传输方式、安全性及适用场景。同时,通过实例展示了如何在Servlet中处理这两种请求。 ... [详细]
  • Struts与Spring框架的集成指南
    本文详细介绍了如何将Struts和Spring两个流行的Java Web开发框架进行整合,涵盖从环境配置到代码实现的具体步骤。 ... [详细]
  • 随着Redis功能的不断增强和稳定性提升,其应用范围日益广泛,成为软件开发人员不可或缺的技能之一。本文将深入探讨Redis集群的部署与优化,包括主从备份机制、哨兵模式以及集群功能,帮助读者全面理解并掌握Redis集群的应用。 ... [详细]
  • 如何使用PyCharm及常用配置详解
    对于一枚pycharm工具的使用新手,正确了解这门工具的配置及其使用,在使用过程中遇到的很多问题也可以迎刃而解,文中有非常详细的介绍, ... [详细]
  • 算法题解析:最短无序连续子数组
    本题探讨如何通过单调栈的方法,找到一个数组中最短的需要排序的连续子数组。通过正向和反向遍历,分别使用单调递增栈和单调递减栈来确定边界索引,从而定位出最小的无序子数组。 ... [详细]
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
  • 本文详细介绍Python编程的基础知识,涵盖从安装环境到编写简单程序的核心内容,并深入探讨网络编程的基本概念和实践。提供多种资源下载方式,帮助读者快速上手。 ... [详细]
  • 本文详细介绍了C语言的起源、发展及其标准化过程,涵盖了从早期的BCPL和B语言到现代C语言的演变,并探讨了其在操作系统和跨平台编程中的重要地位。 ... [详细]
  • Linux 文件管理命令详解
    本文详细介绍了 Linux 系统中常用的文件管理命令,包括目录创建与删除操作,帮助用户更好地理解和使用这些命令。 ... [详细]
  • 获取Jedis和Commons Pool JAR包的两种方法及详细步骤
    本文介绍如何通过网盘链接或官方网站获取Jedis和Commons Pool的JAR包,并提供详细的图文教程。同时,还附有导入JAR包到项目的相关建议。 ... [详细]
  • 云计算的优势与应用场景
    本文详细探讨了云计算为企业和个人带来的多种优势,包括成本节约、安全性提升、灵活性增强等。同时介绍了云计算的五大核心特点,并结合实际案例进行分析。 ... [详细]
  • 本文探讨了Java编程的核心要素,特别是其面向对象的特性,并详细介绍了Java虚拟机、类装载器体系结构、Java类文件和Java API等关键技术。这些技术使得Java成为一种功能强大且易于使用的编程语言。 ... [详细]
author-avatar
笨小孩2502894737
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有