• 微架构、指令集架构与汇编语言的关系


    最近老是碰到x86 IA32 MIPS什么的对应的汇编又是有好几种,感觉很迷。遂查资料理清这些个概念如下(大部分内容来自维基百科,如有错误谢指正!)

    微架构、指令集架构和汇编语言这三者的关系大概是这样的,我们分别来介绍下

    指令集

    指令就是要计算机执行某种操作的命令。

    从计算机组成的层次结构来说 指令分为微指令(微程序级的指令,属硬件)、宏指令(若干机器指令组成的 属软件)和机器指令(二者之间 简称指令)。

    我们这里只讨论机器指令,每一条机器指令指令可以完成一个独立的算术运算或逻辑运算操作(如加减移位等)。

    一台计算机中所有机器指令的集合指令集。它存在于CPU内部,对CPU运算进行指导和优化。

    从指令集来说,计算机分为我们熟悉的CISC(复杂指令集计算机)和RISC(精简指令集计算机)。这两种的设计理念和优缺点各不相同,这里不再展开。

    微架构

    微架构,是处理器核心的实现方式,是将一种给定的指令集架构在处理器中执行的方法(指令集的实现)。

    通常认为只有具备独立的微架构研发能力的企业才算具备了CPU研发能力。

    指令集架构(处理器架构)

    是计算机体系结构中与程序设计有关的部分,包含了基本数据类型,指令集,寄存器,寻址模式,存储体系,中断,异常处理以及外部I/O。指令集架构为汇编语言的设计师和编译器所见。

    几种常见的架构(详细内容和异同网上的介绍很多)

    • x86 的32位  -> IA32  CISC 
      • 英特尔32位架构(英语:Intel Architecture, 32-bit,缩写为IA-32),常被称为i386、或x86。
      • 由英特尔公司于1985年推出的指令集架构。它是8086架构的延伸版本,可支持32位运算,首次应用在Intel 80386芯片中。
      • 对许多编程语言来说,IA-32与i386是同义词。
    • x86 的64位  -> x86-64/x64/amd64  CISC
    • IA64 是Intel与hp共同开发的 
      • 此架构与x86及x86-64并不相容,操作系统与软件需使用IA-64专用版本。
      • 不多见
    • ARM架构(Advanced RISC Machine)      RISC
      • 主要应用于移动端和嵌入式,价格低,能耗低。
    • MIPS架构(Microprocessor without interlocked piped stages)RISC
      • 龙芯
      • 用于电子产品、网络设备、个人娱乐设备与商业设备
    • PowerPC架构(Performance Optimization With Enhanced RISC – Performance Computing) RISC
      • 曾用于Xbox、Mac的处理器和服务器等

    汇编语言

    汇编语言是机器语言的助记符,因此与指令集架构密切相关。上述的几种架构分别有自己对应的汇编语言,这里不再展开说。顺便提一句汇编风格 

    x86 和 x86-64/x64amd64 有两种汇编风格(详情见下表)

    • Intel汇编  Microsoft Windows/Visual C++使用
    • AT&T汇编  GNU/Gas使用

  • 相关阅读:
    C艹老师布置的思考题
    计蒜客练习题:网页跳转(java / C++仔细)
    计蒜客练习题:水果店(嵌套map)
    计蒜客练习题:蒜头君面试(map + max_element)
    小希的迷宫 HDU 1272(并查集)
    OpenJ_Bailian 1061
    Aizu 2224(并查集)
    Aizu 0189 (最短路)
    POJ 2377(最大生成树)
    OpenJ_Bailian 4118(dp)
  • 原文地址:https://www.cnblogs.com/yilang/p/12145416.html
Copyright © 2020-2023  润新知