这行代码对我来说没有意义,有人可以用 vhdl 语言解释一下吗?

问题描述

你能告诉我为什么第 2 行是:i * 8?我从一本书中得到了这个代码

MOV X9,XZR // i = 0
loop1: LSL X10,X9,#3 // X10 = i * 8
ADD X11,X0,X10 // X11 = address of array[i]
STUR XZR,[X11,#0] // array[i] = 0
ADDI X9,#1 // i = i + 1
CMP X9,X1 // compare i to size
B.LT loop1 // if (i < size) go to loop1

解决方法

LSL 是逻辑左移。数字是二进制的。一个班次使数字翻倍。所以三班制是 2 的三次幂,也就是 8。