Получение значения элемента массива - 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]
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д