地址、字长与字节

一、位数与字长

处理器有一个位数的概念,像Intel的8086就是典型的16位处理器,以及32位和64位的x86结构处理器,这个位数就是指处理器一次可以处理的数据位数。也可称之为字长

并且无论在哪种架构的处理器是,字节长度都是8位是固定不变的

所以我们可以说8086的字长是16位,一个字是两个字节。

二、地址与字节与字长

地址可以看作是字节数组,即字节是地址的基本编码单位。像地址0x0000,0x0001分别就是地址中第一个、第二个字节的位置。但是我们前文提到了处理器一次处理的数据长度(字长),所以如果0x0000是初始地址,那么像0x0001这种后续几个低于字长地址就没啥价值了,因为我本次处理了0x0000,下一次就处理0x0008(64位处理器)了

三、联想

1、在64位x86的机器上,移动指令是movq,这个q是什么含义呢?

答:q是指quater是四分之一的意思,反过来就是四倍,远古8086的字长是两个字节16位,16位的四倍就是64位了,所以movq指64位的mov

2、为什么使用%p打印出来的地址,一般都是0x7fff xxxx xxxx,远远不是64位呀

答:64位的机器因为一些编码啥的问,地址位数只有47位。

全部评论

相关推荐

点赞 1 评论
分享
牛客网
牛客企业服务