Получение значения элемента массива - Assembler

Узнай цену своей работы

Формулировка задачи:

Добрый день. Во время экспериментов с ассемблерными вставками в MS VS C++ возник небольшой вопрос, на который ввиду малого опыта сам ответить я не могу Требуется Ваша помощь. Вот пример. Динамически выделяю память для вектора из трех элементов. Вопрос в том, что не понимаю, как в данном примере можно считать значение второго элемента массива в регистр EDX через Asm вставку. С тем, как осуществлять запись разобрался (последняя строка), а вот со считыванием проблемы Надеюсь на Вашу помощь
uint8_t *x = (uint8_t*)malloc(3*sizeof(uint8_t));
 
        x[0] = 1;
        x[1] = 2;
        x[2] = 3;
 
        _asm
        {
            mov eax, 0 //в eax = 0
            mov esi, [x] //Адрес массива в esi
            inc esi //Смещаемся на второй элемент
            mov edx, ... 
            add eax, edx
            inc esi
            mov [esi], 0 //В третий пишем 0
        }

Решение задачи: «Получение значения элемента массива»

textual
Листинг программы
mov edx, [esi]

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.875 из 5
Похожие ответы