最近面试的时候被问到指令集,一头雾水,由于之前的工作没有涉及到指令集方面的知识,现总结成文。
定义
指令集架构(英语:Instruction Set Architecture,缩写为ISA),又称指令集或指令集体系,是计算机体系结构中与程序设计有关的部分,包含了基本数据类型,指令集,寄存器,寻址模式,存储体系,中断,异常处理以及外部I/O。指令集架构包含一系列的opcode即操作码(机器语言),以及由特定处理器执行的基本命令。(wiki定义 )
关于指令集的工作方式,知乎上有一个回答我觉得还可以,这里引用一下:
CPU的指令集存放在哪里?
其内容如下:
比如我们设计一套指令集,其中肯定有条加法指令。比如Add R1 R2 。我们可以认为这条指令的意思是计算寄存器R1中的内容和R2的和,然后把结果存到R1寄存器中。
那么经过编译后这条指令会变成二进制,比如010100010010 。这条二进制指令一共12位。明显可以分为三大部分。最前面的0101表示这是条加法指令,后面0001说的是第一个操作数是寄存器1,最后0010说的是第二个数就是寄存器2(其实实际没有这么简单的指令,至少应该区分操作数是寄存器还是直接的数据,但为了把这说的更容易理解作了简化)。我们可以通过十二根导线把这条指令输入一个CPU中。导线通电就是1,不通电就是0 。为了叙述方便我们从左到右用A0-A11给这12根导线编上号。
然后

本文介绍了指令集架构的基础知识,包括定义和工作原理。通过知乎上的例子解释了如何将指令转化为二进制并执行,强调了指令集在计算机运算中的作用,帮助理解底层计算过程。
最低0.47元/天 解锁文章
1054

被折叠的 条评论
为什么被折叠?



