Assembly 如何在64位体系结构中存储数据
我有两个问题 第一个问题: 使用int而不是long如何减少程序中的字节数?据我所知,我们分配变量,也就是说,我们占用一个地址,如果我们使用64位体系结构,那么内存的每个地址都有64位 第二个问题: 内存地址中如何包含小于64位的数据?它先占用第一个元素,然后在其他单元格中写入0Assembly 如何在64位体系结构中存储数据,assembly,memory,data-structures,cpu-architecture,Assembly,Memory,Data Structures,Cpu Architecture,我有两个问题 第一个问题: 使用int而不是long如何减少程序中的字节数?据我所知,我们分配变量,也就是说,我们占用一个地址,如果我们使用64位体系结构,那么内存的每个地址都有64位 第二个问题: 内存地址中如何包含小于64位的数据?它先占用第一个元素,然后在其他单元格中写入0 谢谢大多数64位体系结构仍然是字节寻址体系结构,即每个地址引用1个字节。因此,使用32位数据而不是64位数据只占用4个地址,而不是8个地址,节省了一半的空间 在64位体系结构(即每个地址引用一个64位字)上,您的第一句
谢谢大多数64位体系结构仍然是字节寻址体系结构,即每个地址引用1个字节。因此,使用32位数据而不是64位数据只占用4个地址,而不是8个地址,节省了一半的空间
在64位体系结构(即每个地址引用一个64位字)上,您的第一句话是正确的。使用32位变量不会节省内存。至于第二个问题,在字寻址体系结构上处理32位数据时,将数据扩展到64位是一个常见的选择。大多数64位体系结构仍然是字节寻址体系结构,即每个地址引用1个字节。因此,使用32位数据而不是64位数据只占用4个地址,而不是8个地址,节省了一半的空间 在64位体系结构(即每个地址引用一个64位字)上,您的第一句话是正确的。使用32位变量不会节省内存。至于第二个问题,在字寻址体系结构上处理32位数据时,将数据扩展到64位是一个常见的选择