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个描述符。
相关文章
|
2月前
|
Ubuntu Linux
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
查看Linux系统架构的命令,查看linux系统是哪种架构:AMD、ARM、x86、x86_64、pcc 或 查看Ubuntu的版本号
216 3
|
3月前
|
存储 分布式数据库 数据库
Hbase学习二:Hbase数据特点和架构特点
Hbase学习二:Hbase数据特点和架构特点
52 0
|
25天前
|
Cloud Native Java 编译器
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
随着云计算技术的不断发展,云服务商们不断推出高性能、高可用的云服务器实例,以满足企业日益增长的计算需求。阿里云推出的倚天实例,凭借其基于ARM架构的倚天710处理器,提供了卓越的计算能力和能效比,特别适用于云原生、高性能计算等场景。然而,有的用户需要将传统基于x86平台的应用迁移到倚天实例上,本文将介绍如何将基于x86架构平台的应用迁移到阿里云倚天实例的服务器上,帮助开发者和企业用户顺利完成迁移工作,享受更高效、更经济的云服务。
将基于x86架构平台的应用迁移到阿里云倚天实例云服务器参考
|
19天前
|
设计模式 架构师 Java
Java开发工程师转架构师需要学习什么
Java开发工程师转型为架构师需掌握多项技能:精通Java及框架、数据库与分布式系统;熟悉设计模式与架构模式;积累项目经验;提升沟通与领导力;持续学习新技术;培养系统设计与抽象能力;了解中间件及开发工具;并注重个人特质与职业发展。具体路径应结合个人目标与实际情况制定。
42 18
|
4月前
|
数据处理 C语言
深入解析x86架构:X86, X86_32和X86_64的差异与应用
深入解析x86架构:X86, X86_32和X86_64的差异与应用
553 0
|
2月前
|
机器学习/深度学习 算法 数据库
阿里云服务器架构区别解析:从X86计算、Arm计算到高性能计算架构的区别参考
在我们选择阿里云服务器的架构时,选择合适的云服务器架构对于提升业务效率、保障业务稳定至关重要。阿里云提供了多样化的云服务器架构选择,包括X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器以及高性能计算等。本文将深入解析这些架构的特点、优势及适用场景,以供参考和选择。
阿里云服务器架构区别解析:从X86计算、Arm计算到高性能计算架构的区别参考
|
28天前
|
缓存
计算机X86架构
【9月更文挑战第7天】计算机的基本工作原理,重点阐述了CPU(中央处理器)及其内部结构,包括运算单元、数据单元和控制单元的功能。文中还解释了内存、总线(地址总线和数据总线)的作用,并简述了x86架构与操作系统交互的关键部分及基本指令集。
|
2月前
|
Android开发 开发者
Android、Flutter为不同的CPU架构包打包APK(v7a、v8a、x86)
Android、Flutter为不同的CPU架构包打包APK(v7a、v8a、x86)
81 1
|
2月前
|
机器学习/深度学习 算法 网络架构
神经网络架构殊途同归?ICML 2024论文:模型不同,但学习内容相同
【8月更文挑战第3天】《神经语言模型的缩放定律》由OpenAI研究人员完成并在ICML 2024发表。研究揭示了模型性能与大小、数据集及计算资源间的幂律关系,表明增大任一资源均可预测地提升性能。此外,论文指出模型宽度与深度对性能影响较小,较大模型在更多数据上训练能更好泛化,且能高效利用计算资源。研究提供了训练策略建议,对于神经语言模型优化意义重大,但也存在局限性,需进一步探索。论文链接:[https://arxiv.org/abs/2001.08361]。
33 1
|
2月前
|
存储 缓存 监控
X86架构服务器硬件设计
8月更文挑战第16天
63 0
下一篇
无影云桌面