Код IT Загрузка примера кода…

Assembler main.asm
; rdi = адрес A, rsi = адрес B, rdx = адрес результата, rcx = число слов (N)
add_words:
    xor rax, rax              ; CF := 0
.loop:
    mov r8, [rdi]
    adc r8, [rsi]             ; r8 = A[i] + B[i] + CF
    mov [rdx], r8
    add rdi, 8
    add rsi, 8
    add rdx, 8
    loop .loop                  ; dec rcx; jnz — классический счётчик
    setc al                     ; al = 1, если был перенос за старший разряд
    movzx rax, al
    ret
; rdi = адрес A, rsi = адрес B, rdx = адрес результата, rcx = число слов (N)
add_words:
    xor rax, rax              ; CF := 0
.loop:
    mov r8, [rdi]
    adc r8, [rsi]             ; r8 = A[i] + B[i] + CF
    mov [rdx], r8
    add rdi, 8
    add rsi, 8
    add rdx, 8
    loop .loop                  ; dec rcx; jnz — классический счётчик
    setc al                     ; al = 1, если был перенос за старший разряд
    movzx rax, al
    ret