(一)指令:
    指令都是二进制的,一条指令长度不一,从一些微控制器中的4位(bit)到一些超长指令字系统中的几百位。指令的种类和多少与具体的机型有关。其实如果在class文件中说0a 是一个指令也可以(如下图表示的)并有与之相对应的助记符。同时图二opcode也可以说是一个指令。
图一:
在这里插入图片描述
    (二)指令分类:操作数(二级制),操作码(二进制值)。操作码决定要完成的操作其实就是指令序列号,java虚拟机操作码的长度限制为一个字节,用来告诉CPU执行哪条指令。操作数指参加运算的数据及其所在的单元地址。

注意:
(1)因为虚拟机的操作码长度只有一个字节,所以包含了数据类型的操作码就为指令集的设计带来了很压力。如果每一种与数据类型相关的指令都支持Java虚拟机所有运行数据类型的话,那么指令的数量恐怕就超出一个字节所能表示的数量范围了,即并非每种数据类型和每一种操作都有对应的指令。
(2)大部分指令都没有支持byte,char,boolean,short,都是使用相应的对int 类型作为运算类型运行的。

    (三)助记符:
为了反映执行指令的功能所做的英文简写
图二:
在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐