概述
存储器和寄存器交互操作(ARMv8)
1.为什么需要存储器和寄存器交互操作?
- 编程语言中可能有数组和结构体这样复杂的数据结构。处理器只能保存少量数据到寄存器,但是可以存储器中放数十亿数据,因此数据结构存在存储器中。
- LEGv8指令只对寄存器操作,因此必须还得有在寄存器和存储器之间传数据的指令。
2.怎么交互?
- 取数指令:LDUR,将数据从存储器复制到寄存器。
- 存数指令:STUR,将寄存器数据存到存储器中。
- 基址寄存器、偏移量:用来找到存储器指定数据的地址。
3.例子:
变量h存在寄存器X21,数组A基址存在X22,写A[12] = h + A[8]汇编代码:
LDUR X9,[X22,#64]//A[8]放到X9
//偏移量是8*8因为按字节编址,相邻双字地址相差8.
ADD X9,X21,X9
STUR X9,[X22,#96]//X9放到A[12]
最后
以上就是着急蜡烛为你收集整理的存储器和寄存器数据传输(ARMv8)的全部内容,希望文章能够帮你解决存储器和寄存器数据传输(ARMv8)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复