x86 架构规范

     2023-02-16     66

关键词:

【中文标题】x86 架构规范【英文标题】:x86 architecture specifications 【发布时间】:2011-01-03 18:44:15 【问题描述】:

我想用 C++ 编写一个与 IBM-PC 兼容的模拟器作为一个教育项目,为了正确模拟 8086 处理器,需要了解它的工作原理。

我需要的信息的一些示例:

代码的结构如何(单条指令的大小,如何解包等)

寄存器的具体工作原理

关于单条指令作用的详细信息(例如 CMP 命令“比较 ... 和 ... 并设置标志”的默认描述对我来说还不够)

我已经搜索了几个小时,但我得到的信息更多是针对想学习 x86 汇编的人,并且不够详细

也许你能帮帮我?

【问题讨论】:

【参考方案1】:

您可能想直接找到源代码:

http://download.intel.com/design/intarch/manuals/24319101.pdf

【讨论】:

【参考方案2】:

sandpile.org 是一个不错的地方,如果您需要有关 x86 操作码的编码格式的信息。所有信息都整理在表格中,便于查找。

【讨论】:

【参考方案3】:

您可以查看英特尔架构手册: http://www.intel.com/products/processor/manuals/ (注意:Otavio 的链接更好,因为它指向较旧的手册)

当然,其中包括许多 8086 中不存在的指令和功能的规范,但您应该可以跳过新内容。

您可能还想查看Bochs 以检查事情或获得一些想法。

最后,除非您已经非常有信心,否则我建议您从更简单的 (RISC) 指令集开始,例如 MIPS 架构之一。与典型的 CISC 架构相比,典型 RISC 架构中的指令解码和寻址模式要简单得多。

【讨论】:

【参考方案4】:

Randall Hyde 的汇编语言艺术。它有几个部分介绍了处理器的工作原理,例如:

第三章:系统组织

3.0章节概述 3.1 基本系统组件 3.1.1 系统总线 3.1.1.1 数据总线 3.1.1.2 地址总线 3.1.1.3 控制总线 3.1.2 内存子系统 3.1.3 I/O 子系统 3.2 系统时序 3.2.1 系统时钟 3.2.2 内存访问和系统时钟 3.2.3 等待状态 3.2.4 缓存内存 3.3 886、8286、8486 和 8686 “假设”处理器 3.3.1 CPU 寄存器 3.3.2 算术和逻辑单元 3.3.3 总线接口单元 3.3.4 控制单元和指令集 3.3.5 x86 指令集 3.3.6 x86 上的寻址模式 3.3.7 编码x86指令 3.3.8 逐步指令执行 3.3.9 x86 处理器的区别 3.3.10 886 处理器 3.3.11 8286 处理器 3.3.12 8486 处理器 3.3.12.1 8486 管道 3.3.12.2 管道中的停顿 3.3.12.3 缓存、预取队列和 8486 3.3.12.4 8486 上的危险 3.3.13 8686 处理器 3.4 I/O(输入/输出) 3.5 中断和轮询 I/O

【讨论】:

国际主流产品信息管理规范smbios支持loongarch架构

SMBIOS支持龙架构(LoongArch™)龙芯生态标准统一近日,DMTF(分布式管理任务组)宣布SMBIOS规范支持龙架构(LoongArch™),自此基于龙架构平台开发的基础硬件信息都将规范统一显示,龙架构也... 查看详情

x86架构

  在接触BIOS的时候,都需要对PC架构有一定的认知。目前的PC架构绝大多数都是Intel的X86架构,貌似也是因为INTEL的这个X86架构早就了目前INTEL如日中天的地位。    废话不多说,X86架构进行一个简单的介绍:... 查看详情

cpu:centralprocessingunit

...规范或语言就是指令集(ISA,InstructionSetArchitecture)。CPU架构:CISC:ComplexInstructionSetComputer,复杂指令集 X86 通用计算机RISC:ReducedInstructionSetComputer,精减指令集 ARM手机常见的指令集有:Intel的x86,EM64T,MMX,SSE,SSE2... 查看详情

主流的cpu架构

cpu架构    CPU架构是CPU厂商给属于同一系列的CPU产品定的一个规范,是为了区分不同类型CPU的重要标示。目前市面上的CPU分类主要分有两大阵营,一个是intel、AMD为首的复杂指令集CPU,另一个是以IBM、ARM为首的精简... 查看详情

powerpc架构与x86架构

PowerPC架构PowerPC是一种精简指令集(RISC)架构的中央处理器(CPU),其基本的设计源自IBM(国际商用机器公司)的POWER(PerformanceOptimizedWithEnhancedRISC;《IBMConnect电子报》2007年8月号译为“增强RISC性能优化”)架构。POWER是1991年,... 查看详情

为 x86 架构开发操作系统 [关闭]

】为x86架构开发操作系统[关闭]【英文标题】:Developinganoperatingsystemforthex86architecture[closed]【发布时间】:2010-09-1221:42:19【问题描述】:我正计划为x86架构开发一个操作系统。我有哪些编程语言选项?有哪些类型的编译器可用,... 查看详情

cpu处理器架构之争系列(一):英特尔经典x86架构

...理器快速发展的浪潮。1978年,英特尔推出了首款基于x86架构的16位处理器8086CPU。当时英特尔与IBM合作,推出基于8086处理器的PC,在市场上获得巨大成功,这也使x86迅速发展成为PC标准平台。早年采用x86架构的企业其实也有数家,... 查看详情

X86 架构 - 使用 unsigned long long 设置向量大小

】X86架构-使用unsignedlonglong设置向量大小【英文标题】:X86architecture-SetVectorsizewithunsignedlonglong【发布时间】:2020-11-2205:49:24【问题描述】:当我尝试在x86架构中使用unsignedlonglong设置矢量大小时,我看到以下错误:unsignedlonglongsz;v... 查看详情

当前的 x86 架构是不是支持非临时负载(来自“正常”内存)?

】当前的x86架构是不是支持非临时负载(来自“正常”内存)?【英文标题】:Docurrentx86architecturessupportnon-temporalloads(from"normal"memory)?当前的x86架构是否支持非临时负载(来自“正常”内存)?【发布时间】:2017-02-2701:22:... 查看详情

提交到 App Store 问题:不支持的架构 x86

】提交到AppStore问题:不支持的架构x86【英文标题】:SubmittoAppStoreissues:UnsupportedArchitecturex86【发布时间】:2015-05-3014:21:42【问题描述】:所以我正在尝试使用ShopifyAPI。当我存档应用程序并对其进行验证时,没有任何问题,但是... 查看详情

x86和x86_64

...大似表述是这样的:IBM/PC兼容机,也就是Intel的i80x86指令架构,就简称了x86。x86并不是指32位环境,而是指80x86架构,这个架构目前有32位,64位两种。曾经听说还包括了过8位和16位,不过我没机会看过。习惯上来说,x86架构就是32... 查看详情

android逆向x86cpu架构体系(堆内存|栈内存|函数调用)(代码片段)

文章目录一、x86架构下的堆内存二、x86架构下的栈内存与函数调用一、x86架构下的堆内存在可用内存中,申请内存块,这部分内存块就是堆内存;C语言中使用malloc等函数申请堆内存;调用free函数释放内存;Java语言中使用new关键字创建... 查看详情

android逆向x86cpu架构体系(堆内存|栈内存|函数调用)(代码片段)

文章目录一、x86架构下的堆内存二、x86架构下的栈内存与函数调用一、x86架构下的堆内存在可用内存中,申请内存块,这部分内存块就是堆内存;C语言中使用malloc等函数申请堆内存;调用free函数释放内存;Java语言中使用new关键字创建... 查看详情

android逆向x86cpu架构体系(cpu模型|内存模型)

...章目录一、x86CPU模型二、内存模型一、x86CPU模型下图是x86架构的CPU模型图:左侧的EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP,CS,DS,ES,FS,GS,SS,EFLAGS,EIP等161616个各种颜色的模块,都是"寄存器";寄存器可以访问"高速缓存",这里的高速缓存就是一... 查看详情

android逆向x86cpu架构体系(cpu模型|内存模型)

...章目录一、x86CPU模型二、内存模型一、x86CPU模型下图是x86架构的CPU模型图:左侧的EAX,EBX,ECX,EDX,ESI,EDI,EBP,ESP,CS,DS,ES,FS,GS,SS,EFLAGS,EIP等161616个各种颜色的模块,都是"寄存器";寄存器可以访问"高速缓存",这里的高速缓存就是一... 查看详情

android开发者需要了解的芯片知识

...平时的开发中,免不了要处理arm、armv7a、armv8a、x86等架构适配,那什么是芯片架构,armv7a中的a指什么。今天,抱着以下问题,让我们撩开手机开发中芯片的一些理论知识。一、CPU接触过计算机的朋友们都知道C... 查看详情

android开发者需要了解的芯片知识

...平时的开发中,免不了要处理arm、armv7a、armv8a、x86等架构适配,那什么是芯片架构,armv7a中的a指什么。今天,抱着以下问题,让我们撩开手机开发中芯片的一些理论知识。一、CPU接触过计算机的朋友们都知道C... 查看详情

android开发者需要了解的芯片知识

...平时的开发中,免不了要处理arm、armv7a、armv8a、x86等架构适配,那什么是芯片架构,armv7a中的a指什么。今天,抱着以下问题,让我们撩开手机开发中芯片的一些理论知识。一、CPU接触过计算机的朋友们都知道C... 查看详情