У меня возникла проблема с кодом для назначения. Это функция, на которую ссылаются вычисления чисел в массиве, чтобы получить среднее значение. Он передается функции ниже. У меня просто возникают проблемы с получением фактических значений из массива, и у меня есть ужасное время, пытаясь найти информацию об использовании массива в сборке. Похоже, я просто получаю справочные/адресные данные. Помогите????Доступ к элементам массива в сборке x86
** Некоторые из приведенного ниже кода взяты из заметок, которые я принимал во время занятий, а остальное - это попытка заполнить пробелы. Скорее всего, это ужасно, потому что извините заранее.
.586
.MODEL FLAT, C
.STACK
.DATA
.CODE
AverageFunc PROC
NoOfElemenstsDW EQU 08 ArrayAddrStartPtr EQU 12
push ebp
mov ebp, esp
push edi
push ecx
mov ecx, [ebp + NoOfElemenstsDW ]
mov edi, [ebp + ArrayAddrStartPtr]
sub ebx, ebx ;set ebx to 0
sub eax, eax ;set eax to 0
sub edx, edx ;must set to 0 to get accurate division
L1:
add eax, [edi] ;add value to total
inc edi ;go to next point in the array
add ebx, 1 ;add 1 to the counter
cmp ebx, ecx ;compare ecx and ebx
jl L1 ;If ebx < ecx, loop again
div ecx ;divide sum by total numbers
pop ecx
pop edi
pop ebp
ret
AverageFunc ENDP
END
Вы не показали нам, как вы вызываете эту функцию (то есть то, что вы передаете как фактические параметры). – Michael