在64位下编程可以使用64位的地址,但amd64架构下只实现48位的虚拟地址,也就是说高16位实际上只是符号扩展,高16位要么全0, 要么全1,这种形式的地址称为canonical地址,与这种地址相反的叫non-canonical,在amd64架构下,non-canonical属于非法地址
在64位下编程可以使用64位的地址,但amd64架构下只实现48位的虚拟地址,也就是说高16位实际上只是符号扩展,高16位要么全0, 要么全1,这种形式的地址称为canonical地址,与这种地址相反的叫non-canonical,在amd64架构下,non-canonical属于非法地址