深入理解Java虚拟机之(四):指令,操作码,助记符
(一)指令: 指令都是二进制的,一条指令长度不一,从一些微控制器中的4位(bit)到一些超长指令字系统中的几百位。指令的种类和多少与具体的机型有关。其实如果在class文件中说0a 是一个指令也可以(如下图表示的)并有与之相对应的助记符。 (二)指令分类:..
·
(一)指令:
指令都是二进制的,一条指令长度不一,从一些微控制器中的4位(bit)到一些超长指令字系统中的几百位。指令的种类和多少与具体的机型有关。其实如果在class文件中说0a 是一个指令也可以(如下图表示的)并有与之相对应的助记符。同时图二opcode也可以说是一个指令。
图一:
(二)指令分类:操作数(二级制),操作码(二进制值)。操作码决定要完成的操作其实就是指令序列号,java虚拟机操作码的长度限制为一个字节,用来告诉CPU执行哪条指令。操作数指参加运算的数据及其所在的单元地址。
注意:
(1)因为虚拟机的操作码长度只有一个字节,所以包含了数据类型的操作码就为指令集的设计带来了很压力。如果每一种与数据类型相关的指令都支持Java虚拟机所有运行数据类型的话,那么指令的数量恐怕就超出一个字节所能表示的数量范围了,即并非每种数据类型和每一种操作都有对应的指令。
(2)大部分指令都没有支持byte,char,boolean,short,都是使用相应的对int 类型作为运算类型运行的。
(三)助记符:
为了反映执行指令的功能所做的英文简写
图二:
更多推荐
已为社区贡献5条内容
所有评论(0)