63 / 3 / 1
Регистрация: 11.05.2011
Сообщений: 666
1

Обращение к элементу массива?

05.11.2013, 23:27. Показов 1653. Ответов 1
Метки нет (Все метки)

Не пойму в этом коде 15 строчку, а именно x[esi*2]. Что значит esi*2 и что этто за элемент мы получаем?
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
.data
    x dw 1, 2, 3, 4, 5, 6, 7
    k dw ?
    z dd ?
.code
main proc
    
    mov ecx, 6      ; счетчик цикла и (k+1)
    mov ebx, 1      ; 
    mov esp, 1
 
go:
    mov esi, ecx
    dec esi             ; esi = k
    movsx eax, x[esi*2]
    imul eax            ; eax = X[k]**2
    add eax, esi        ; eax = X[k]**2+k
    idiv ecx            ; eax = (X[k]**2+k)/(k+1)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.11.2013, 23:27
Ответы с готовыми решениями:

Обращение к элементу массива
Есть следующий код: TITLE FromDecimalToBinary .686 .model flat option casemap:none ...

Обращение к элементу массива (встроенный Assembler)
Изучаю ассемблер. В этой задаче хочу в переменную ср положить какой-то элемент массива(массив и...

Обращение к элементу массива
Здравствуйте! Пытаюсь обратиться к третьему элементу массива, но в результате в регистре ax...

Что быстрее? Обращение к элементу массива или к элементу структуры?
Обращение к элементу массива или к элементу структуры? Экспериментирую с кодом и получается...

1
Ушел с форума
Автор FAQ
15840 / 7422 / 994
Регистрация: 11.11.2010
Сообщений: 13,386
06.11.2013, 03:51 2
Johnlion,
содержимое регистра ESI — это индекс массива Х, элементы массива — слова (2 байта), поэтому при обращении к любому элементу содержимое ESI удваивается, x[esi*2], элемент соответствует слову, а вот команда movsx eax,x[esi*2] производит "знаковое" расширение слова до двойного слова (4 байта)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.11.2013, 03:51
Помогаю со студенческими работами здесь

Обращение к элементу массива
Доброго вечера! Напомните, пожалуйста, как правильно обращаться к элементу массива ? Часть...

Обращение к элементу массива
Есть массив, который приходит мне в формате json, как мне обратиться к примеру ко второму элементу,...

Обращение к элементу массива
Как мне обратиться к последнему элементу массива? например: Array // i = 0 тут нужно что бы -1...

Обращение к элементу массива
Объясните пожалуйста, что происходит в строке помеченной *** void main(){ char str; char...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru