我是靠谱客的博主 着急蜡烛,最近开发中收集的这篇文章主要介绍存储器和寄存器数据传输(ARMv8),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

存储器和寄存器交互操作(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)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部