葵潭镇波 發表於 2020-1-4 09:02:00

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

<p>最近老是碰到x86 IA32 MIPS什么的对应的汇编又是有好几种,感觉很迷。遂查资料理清这些个概念如下(大部分内容来自维基百科,如有错误谢指正!)</p>
<p>微架构、指令集架构和汇编语言这三者的关系大概是这样的,我们分别来介绍下</p>
<p><img src="https://img2018.cnblogs.com/i-beta/1251433/202001/1251433-20200103160046839-600597456.png"></p>
<h2><span style="font-weight: bold">指令集</span></h2>
<p>指令就是要计算机执行某种操作的命令。</p>
<p>从计算机组成的层次结构来说&nbsp;指令分为微指令(微程序级的指令,属硬件)、宏指令(若干机器指令组成的&nbsp;属软件)和机器指令(二者之间 简称指令)。</p>
<p>我们这里只讨论机器指令,每一条机器指令指令可以完成一个独立的算术运算或逻辑运算操作(如加减移位等)。</p>
<p><span style="font-weight: bold">一台计算机中所有机器指令的集合指令集。它存在于CPU内部,对CPU运算进行指导和优化。</span></p>
<p>从指令集来说,计算机分为我们熟悉的<span style="font-weight: bold">CISC(复杂指令集计算机)和<span style="font-weight: bold">RISC(精简指令集计算机)。这两种的设计理念和优缺点各不相同,这里不再展开。</span></span></p>
<h2><span style="font-weight: bold">微架构</span></h2>
<p>微架构,是处理器核心的实现方式,是<span style="font-weight: bold">将一种给定的指令集架构在处理器中执行的方法(指令集的实现)。</span></p>
<p>通常认为只有具备独立的微架构研发能力的企业才算具备了CPU研发能力。</p>
<h2>指令集架构(处理器架构)</h2>
<p>是计算机体系结构中与程序设计有关的部分,包含了基本数据类型,指令集,寄存器,寻址模式,存储体系,中断,异常处理以及外部I/O。指令集架构为汇编语言的设计师和编译器所见。</p>
<p>几种常见的架构(详细内容和异同网上的介绍很多)</p>
<ul>
<li><span style="font-weight: bold">x86&nbsp;的32位&nbsp; -&gt;&nbsp;IA32&nbsp; CISC&nbsp;</span></li>
<ul>
<li>英特尔32位架构(英语:Intel Architecture, 32-bit,缩写为IA-32),常被称为i386、或x86。</li>
<li>由英特尔公司于1985年推出的指令集架构。它是8086架构的延伸版本,可支持32位运算,首次应用在Intel 80386芯片中。</li>
<li>对许多编程语言来说,IA-32与i386是同义词。</li>
</ul>
</ul>
<ul>
<li><span style="font-weight: bold">x86&nbsp;的64位&nbsp; -&gt; x86-64/x64/amd64&nbsp;&nbsp;CISC<br></span></li>


</ul>
<ul>
<li><span style="font-weight: bold">IA64&nbsp;是Intel与hp共同开发的&nbsp;</span></li>
<ul>
<li>此架构与x86及x86-64并不相容,操作系统与软件需使用IA-64专用版本。</li>
<li>不多见</li>


</ul>


</ul>
<ul>
<li><span style="font-weight: bold">ARM架构(Advanced RISC Machine)&nbsp; &nbsp; &nbsp; RISC</span></li>
<ul>
<li>主要应用于移动端和嵌入式,价格低,能耗低。</li>


</ul>


</ul>
<ul>
<li><span style="font-weight: bold">MIPS架构(Microprocessor without interlocked piped stages)RISC</span></li>
<ul>
<li>龙芯</li>
<li>用于电子产品、网络设备、个人娱乐设备与商业设备</li>


</ul>


</ul>
<ul>
<li><span style="font-weight: bold">PowerPC架构(Performance Optimization With Enhanced RISC – Performance Computing)&nbsp;RISC</span></li>
<ul>
<li>曾用于Xbox、Mac的处理器和服务器等</li>


</ul>


</ul>
<h2>汇编语言</h2>
<p>汇编语言是机器语言的助记符,因此<span style="font-weight: bold">与指令集架构密切相关。</span>上述的几种架构分别有自己对应的汇编语言,这里不再展开说。顺便提一句<span style="font-weight: bold">汇编风格&nbsp;</span></p>
<p>x86 和&nbsp;x86-64/x64amd64&nbsp;有两种汇编风格(详情见下表)</p>
<ul>
<li>Intel汇编&nbsp;&nbsp;Microsoft Windows/Visual C++使用</li>
<li>AT&amp;T汇编&nbsp;&nbsp;GNU/Gas使用</li>

</ul>
<p><img src="https://img2018.cnblogs.com/i-beta/1251433/202001/1251433-20200103160231870-924478481.png"></p>

</div>
<div id="MySignature" role="contentinfo">
    为虫子生,为虫子死,为虫子奋斗一辈子<br><br>
来源:https://www.cnblogs.com/yilang/p/12145416.html
頁: [1]
查看完整版本: 微架构、指令集架构与汇编语言的关系