1 / 1 / 1
Регистрация: 27.10.2013
Сообщений: 44
1

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

28.06.2015, 21:09. Показов 1232. Ответов 1
Метки нет (Все метки)

Есть следующий код:

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
TITLE FromDecimalToBinary
.686
.model flat             
option casemap:none           ;различие маленьких и больших букв
 
.data 
    current_number DWORD 20     ;первоначальное десятичное число, которое переводим в двоичный код/в процессе изменяется
    current_res DWORD 0         ;индекс массива результата
.const
    diver DWORD 2               ;система числения, в которую переводим
.data?
    binary_res DWORD 5 dup(?)   ;массив, где хранится результат - двочиный код числа 20
.code
_start:
    lea esi, binary_res
cycle:
    xor eax, eax
    xor ecx, ecx
    mov eax, current_number
    mov edx, 0
    div diver                   ;eax = целая часть, edx = остаток
    mov [esi+current_res], edx  ;запись результата по текущему индексу <----ОШИБКА
    mov current_number, eax
    add current_res, 4
    mov ecx, current_number
    cmp ecx, diver
    jb exit
    jmp cycle
exit:
    ret
end _start
В определенный момент (в строке mov [esi+current_res], edx) хочу записать в массив остаток от деления, который находится в edx. Отлаживаю через OllyDbg. Ошибок нет, но и выполнять он эту строку не хочет. Если написать просто:

Assembler
1
mov [esi], edx
или
Assembler
1
mov [esi+4], edx
то все нормально. Почему я не могу указать нужный мне индекс через переменную current_res?

Добавлено через 1 час 2 минуты
Проблема решена. Вместо переменной стоило использовать ecx. Тему можно закрыть.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.06.2015, 21:09
Ответы с готовыми решениями:

Обращение к элементу массива?
Не пойму в этом коде 15 строчку, а именно x. Что значит esi*2 и что этто за элемент мы получаем?...

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

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

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

1
6681 / 2664 / 366
Регистрация: 17.02.2013
Сообщений: 3,906
28.06.2015, 21:29 2
Цитата Сообщение от Jeckor Посмотреть сообщение
mov [esi+current_res], edx)
Здесь к esi прибавляется адрес current_res, а не значение cerrent_res
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.06.2015, 21:29
Помогаю со студенческими работами здесь

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

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

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

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

Обращение к любому элементу массива
Я делаю обработчик для динамического количества Series у Chart, обращение к LineSeries без...

Обращение к элементу массива из строк
Здравствуйте! Имеется такой код: string mesiaci = //Massiv iz strok { &quot;Ianvar'&quot;,...


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

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

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