如: *(rom_pointer + 8) = 0x00000000
unsigned long content = *(rom_pointer + 0x4)
ARM是32位的,所有寄存器都占四个字节,每条指令占四个字节,指令执行的过程:取址---->译码------->执行。这三步都是需要消耗时间的。指令在内存中一块连续内存空间中执行,所有指令像流水线一样执行,假如有多条指令按顺序执行。流水线:1.第一条指令进行取址。2.第一条指令译码,为了节约时间,在第一条指令译码的同时,第二条指令取址,地址为第一条指令地址加4. 3.第一条指令执行,同时第二条指令译码,第三条指令取址,地址等于第一条地址加8. 总结:这里的第一条指令等同于你说的A指令,它执行的时候,第三条指令正在取址,地址等于A指令地址加8.8字节或4字节。64位处理器上64位 *** 作系统的32位编译器,指针大小是8字节,64位处理器上32位 *** 作系统的16位编译器,指针大小4字节,所以64位arm指针长度是8字节或4字节。英国ARM公司是全球领先的半导体知识产权提供商,全世界超过95%的智能手机和平板电脑都采用ARM架构。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)