微架构、指令集架构与汇编语言的关系
最近老是碰到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使用
相关推荐
李辉 2020-04-07
Emiter0 2020-03-08
duling 2020-03-03
duling 2020-02-22
风月无古今 2019-10-22
风月无古今 2020-06-28
andyljn 2020-02-13
风月无古今 2020-01-18
Emiter0 2020-06-28
andyljn 2020-06-13
李辉 2020-06-08
风月无古今 2020-06-06
duling 2020-06-03
PLA 2020-05-25
风月无古今 2020-05-15
duling 2020-05-15
Emiter0 2020-05-10
Emiter0 2020-05-09
andyljn 2020-05-06