研究表示,最常用的20条x86指令当中:
mov 35%(寄存器之间、寄存器与内存之间移动数据)
push 10%(压入堆栈,也经常用来传递参数)
call 6%
cmp 5%
add、pop、lea 4%(实际计算指令非常少)
mov、push、pop都是和load/store直接相关的,add、cmp等则间接相关
75%的x86指令短于4 bytes,也就是小于32 bits。不过这些短指令只占代码大小的53% —— 有一些指令非常长。
单操作数指令占37%,双操作数指令占60%。
双操作数指令中,直接数操作20%,寄存器操作数56%,绝对寻址操作数1%,间接寻址操作数23%。
文章评论