Загрузка данных


global PrintValue

section .note.GNU-stack

section .data
    A dq 5,2,5,-3,7,5,1,4
    N equ 8
    X dq 5

section .text
PrintValue:
    xor rax,rax           ; rax = S, общая сумма
    xor rcx,rcx           ; rcx = индекс элемента
    lea rsi,[rel A]        ; rsi = адрес начала массива
    mov r8,[rel X]        ; r8 = заданное число X

next:
    cmp rcx,N
    jge finish            ; если просмотрели N элементов

    mov r9,[rsi+8*rcx]    ; r9 = A[rcx]
    cmp r9,r8             ; сравниваем элемент с X
    jne skip              ; если не равен, пропускаем

    add rax,r9            ; S += элемент, равный X

skip:
    inc rcx               ; следующий элемент
    jmp next

finish:
    ret                   ; rax = 15