At & T Assembly индексирование массивов и объявление массивов - PullRequest
0 голосов
/ 25 мая 2018

Как мне поступить с индексированием и объявлением массивов в сборке AT & T?

Объявление о том, сделать ли я это следующим образом:

array:
    .zero 256

Создает массив из 256 со значениями ноль.

Индексация это я делаю это так:

movq $array, %r14                //Set array to a register name
                                 //Say that r11 has the number 5 stored
movq (%r14, %r11, 8), %r15       //This will make r15 at index 5 of array
movq %rbx ,%r15                  //This will store value of rbx into r15

Это так, как я это делаю?Если нет, то как мне создать и проиндексировать массивы в сборке AT & T?

1 Ответ

0 голосов
/ 25 мая 2018

Ваша сборка сохранит адрес начала массива в r14, переместит значение r11-го элемента массива в r15, затем переместит значение в rbx в r15,Это не будет перемещать любое значение в массив.Если вы хотите переместить адрес r11-го элемента в r15, а затем переместить значение в rbx в r11-й элемент массива, вам нужно будет использовать leaq (%r14, %r11, 8), %r15 для перемещения адресаr11-й элемент массива в r15, затем используйте movq %rbx, (%r15), чтобы переместить значение в rbx в r11-й элемент массива.

...