x86体系架构学习

简介: x86体系架构学习

8086 (实模式)

  • 通用寄存器:AX、BX、CX、DX、SI、DI、BP和SP,此外前4个寄存器可以分成高8位和低8位来访问,AH、AL、BH、BL、CH、CL以及DH、DL
  • 4个16位的段寄存器:CS、DS、SS、ES,其中CS存放指令的段地址,DS和ES存放数据的段地址,默认是DS,要使用ES需要在指令里指明,SS存放栈的段地址
  • 基址寄存器BX用的是DS,基址寄存器BP用的是SS。
  • 基址变址:[BX]、[BX+SI]、[BX+DI]、[BP]、[BP+SI]、[BP+DI]
  • 不支持将数据直接使用mov的方式送入段寄存器,比如mov ds,1000H,需要通过一个通用寄存器来进行中转
  • “段地址x16+偏移地址=物理地址”含义:CPU在访问内存时,用一个基础地址(段地址x16)和一个相对于基础地址的偏移地址相加,给出内存单元的物理地址。
  • 正确理解段地址:内存并没有分段,段的划分来自于CPU,由于8086用“基础地址(段地址x16)+ 偏移地址=物理地址”的方式给出内存单元的物理地址,使得我们可以用分段的方式来管理内存
  • 由于乘以16的缘故,基础地址总是16字节对齐的
  • 任意时刻,CPU将CS:IP指向的内容当作指令执行
  • 上电后,CS的初始值为0xFFFF,IP的默认值为0x0000,所以CPU从内存0xFFFF0读取指令执行
  • CS和IP的值不能通过mov来修改,需要通过转移指令,如“jmp 段地址:偏移地址”
  • 执行mov ax, [2] 表示: 将 ds x 16 + 2 这个内存单元的值读到ax寄存器中
  • 在任意时刻,SS:SP指向栈顶元素,执行push ax时,首先SP=SP-2,然后将ax中的内容送入SS:SP指向的内存单元处,此时SS:SP指向新栈顶。pop的过程与之相反。

IA-32 (保护模式)

  • 通用寄存器:EAX、EBX、ECX、EDX、ESI、EDI、EBP、ESP
  • 段寄存器不再存放段基地址,而是段的选择子或者段选择器,即用于选择所要访问的段
  • 逻辑地址:段地址:偏移地址
  • 线性地址:段地址x16 + 偏移地址
  • 虚拟地址:逻辑地址和线性地址都是虚拟地址的表现形式
  • 物理地址:实模式和非分页保护模式下就是线性地址,分页保护模式下需要经过MMU将线性地址转换为物理地址
  • 在保护模式下,对内存的访问仍然使用段地址和偏移地址,但是在每个段能够访问之前,必须先进行登记。登记的信息包括:段的起始地址、段的界限等各种访问属性。每个登记信息占用8字节,称为段描述符,每个段都需要一个描述符。描述符存放在一段内存中,这段内存中,所有的描述符都挨在一起,集中存放,构成了一个描述符表。
  • 最主要的描述表是全局描述符表GDT,进入保护模式前,必须要定义全局描述符表。全局描述符表寄存器GDTR,这个寄存器为48位,高32位保存全局描述符表在内存中的起始线性地址,低16位表示全局描述符表的边界(界限),其数值上等于表的大小(总字节数)-1. 所以全局描述符表最大为64KB,最多容纳8192个描述符。
目录
打赏
0
0
0
0
113
分享
相关文章
阿里云服务器架构解析:从X86到高性能计算、异构计算等不同架构性能、适用场景及选择参考
当我们准备选购阿里云服务器时,阿里云提供了X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器以及高性能计算等多种架构,每种架构都有其独特的特点和适用场景。本文将详细解析这些架构的区别,探讨它们的主要特点和适用场景,并为用户提供选择云服务器架构的全面指南。
178 18
JavaWeb CRUD 与分页系统架构学习教程
本教程详细讲解了如何使用 Java Web 技术构建一个带有 CRUD 和分页功能的应用程序。以产品信息管理为例,采用 MVC 架构设计,涵盖 Servlet、JSP、JDBC/MyBatis 等技术。内容包括基础知识介绍、项目结构划分、数据库连接配置、DAO 层实现、Service 层设计、Servlet 控制层编写、JSP 前端展示以及分页功能的实现。同时涉及日志配置和 Tomcat 部署运行。通过分层开发,确保代码清晰、职责分明,便于维护和扩展。适合初学者掌握 Java Web 开发全流程,并为学习更高级框架奠定基础。
27 0
JavaWeb CRUD 与分页系统架构学习教程
本教程将带你一步步构建一个 Java Web 的 CRUD(创建、读取、更新、删除)及分页功能的示例应用,涵盖从基本概念到完整项目架构的各个层次。
50 3
X86架构属于国产化架构吗
在信息时代,处理器架构至关重要。本文通过简单流程和代码示例,帮助初学者理解X86架构是否属于国产化架构。首先明确国产化架构指本土研发的处理器架构,如龙芯、飞腾等。X86架构由Intel设计,主要由外资公司开发,通常不被视为国产架构。文章提供了一个判断X86架构是否国产化的流程图,并用Python代码实现判断过程。Architecture类描述架构来源和类型,App类负责获取和判定架构信息。通过这些步骤,初学者可以更好地掌握相关知识并提升开发技能。
115 5
架构学习:7种负载均衡算法策略
四层负载均衡包括数据链路层、网络层和应用层负载均衡。数据链路层通过修改MAC地址转发帧;网络层通过改变IP地址实现数据包转发;应用层有多种策略,如轮循、权重轮循、随机、权重随机、一致性哈希、响应速度和最少连接数均衡,确保请求合理分配到服务器,提升性能与稳定性。
524 11
架构学习:7种负载均衡算法策略
|
8月前
|
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
1311 3
RWKV-7:RWKV系列开源最新的大模型架构,具有强大的上下文学习能力,超越传统的Attention范式
RWKV-7是RWKV系列的最新大模型架构版本,具有强大的上下文学习能力,超越了传统的attention和linear attention范式。本文详细介绍了RWKV-7的主要功能、技术原理及其在多语言处理、文本生成等领域的应用场景。
277 7
RWKV-7:RWKV系列开源最新的大模型架构,具有强大的上下文学习能力,超越传统的Attention范式
阿里云服务器ECS架构区别及选择参考:X86计算、ARM计算等架构介绍
在我们选购阿里云服务器的时候,云服务器架构有X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器、高性能计算可选,有的用户并不清楚他们之间有何区别,本文主要简单介绍下这些架构各自的主要性能及适用场景,以便大家了解不同类型的架构有何不同,主要特点及适用场景有哪些。
391 10
阿里云服务器架构有啥区别?X86计算、Arm、GPU异构、裸金属和高性能计算对比
阿里云ECS涵盖x86、ARM、GPU/FPGA/ASIC、弹性裸金属及高性能计算等多种架构。x86架构采用Intel/AMD处理器,适用于广泛企业级应用;ARM架构低功耗,适合容器与微服务;GPU/FPGA/ASIC专为AI、图形处理设计;弹性裸金属提供物理机性能;高性能计算则针对大规模并行计算优化。
247 7
|
6月前
|
docker:记录如何在x86架构上构造和使用arm架构的镜像
为了实现国产化适配,需将原x86平台上的Docker镜像转换为适用于ARM平台的镜像。本文介绍了如何配置Docker buildx环境,包括检查Docker版本、安装buildx插件、启用实验性功能及构建多平台镜像的具体步骤。通过这些操作,可以在x86平台上成功构建并运行ARM64镜像,实现跨平台的应用部署。
3724 2

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等