指令中的操作码和操作数有和作用
1个回答
展开全部
机器指令有它的编码规则,以若干位代表不同的操作码,若干位代表寻址方式组合,若干位表示操作数类型是字还是字节,若干位表示各个操作数,等等。8086指令的具体编码可以查阅一些机器语言参考手机。一般说来,CPU里面只有少数几个寄存器,只需要不多的几位即可区分不同的寄存器。比如区分8个寄存器只需要3bit进行编码。因此,用寄存器寻址的机器指令,长度较短。而内存或立即寻址,需要给出8位或16位的操作数,或内存地址,它们需要的位数显然比寄存器要多,因而机器指令也就会变长。subax,ax指令两个操作数都是寄存器,所以操作码+寻址方式组合+数据类型+两操作数的寄存器代码这些组合后只有两个字节:2BC0movax,0这条指令中,16位的源操作数--立即数0就要单独占用两个字节,其它操作码和目的操作数等的编码再占用一个字节,指令长度就成了三个字节:B80000(后面的两个0000就是源操作数0)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询