x86体系结构规范 我想用C++编写一个IBM—PC兼容的Eualalor作为一个教育项目,为了正确模拟8086处理器需要它如何工作的信息。

x86体系结构规范 我想用C++编写一个IBM—PC兼容的Eualalor作为一个教育项目,为了正确模拟8086处理器需要它如何工作的信息。,x86,emulation,assembly,X86,Emulation,Assembly,我需要的信息的一些示例: 代码是如何构造的(单个指令的大小,它们是如何解包的,等等) 寄存器的精确工作方式 关于单个指令的详细信息(例如,CMP命令的默认描述“比较…和…并设置标志”对我来说不够) 我已经搜索了几个小时,但我得到的信息更多的是针对那些试图学习x86汇编的人,而且不够详细 也许你能帮我吗?你可以直接找到来源: 您可能希望直接找到来源: 您可以查看英特尔体系结构手册: (注意:Otavio的链接更好,因为它使用的是较旧的手册) 当然,这些包括了8086中不存在的许多指令和功能的规

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

  • 代码是如何构造的(单个指令的大小,它们是如何解包的,等等)

  • 寄存器的精确工作方式

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

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


也许你能帮我吗?

你可以直接找到来源:


您可能希望直接找到来源:


您可以查看英特尔体系结构手册: (注意:Otavio的链接更好,因为它使用的是较旧的手册)

当然,这些包括了8086中不存在的许多指令和功能的规范,但是您应该能够跳过新的内容

你可能还想看看,检查一下,或者得到一些想法


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

您可以查看英特尔体系结构手册: (注意:Otavio的链接更好,因为它使用的是较旧的手册)

当然,这些包括了8086中不存在的许多指令和功能的规范,但是您应该能够跳过新的内容

你可能还想看看,检查一下,或者得到一些想法


最后,除非您已经非常自信,否则我建议您从一个更简单的(RISC)指令集开始,例如一个MIPS体系结构。在典型的RISC体系结构中,指令解码和寻址模式要比在典型的CISC体系结构中复杂得多。

如果您需要有关x86操作码编码格式的信息,这是一个很好的地方。所有信息都组织在表格中以便于查找。

如果您需要有关x86操作码编码格式的信息,这是一个很好的地方。所有信息都组织在表格中,便于查找。

汇编语言的艺术,作者: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输入/输出子系统
  • 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输入/输出(输入/输出)
  • 3.5中断和轮询I/O

  • 汇编语言的艺术,兰德尔·海德著。它有两个关于处理器如何工作的部分,例如:

    第三章:系统组织

    • 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输入/输出子系统
    • 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输入/输出(输入/输出)
    • 3.5中断和轮询I/O