Найти сумму целых положительных чисел из промежутка от А до В, кратных 4 - Assembler

Узнай цену своей работы

Формулировка задачи:

Задача 1:Найти сумму целых положительных чисел из промежутка от А до В, кратных 4 (значения переменных А и В вводятся с клавиатуры). нужна именно вставка ассемблера в c++
по типу такого Есть решениее на c++ ,но нужно ассемблер...

Решение задачи: «Найти сумму целых положительных чисел из промежутка от А до В, кратных 4»

textual
Листинг программы
.386
.model flat, stdcall
option casemap:none
;include и includelib
 
.data
 
 
.code
 
Sum PROC STDCALL USES ebx A:DWORD, B:DWORD
    mov edx, [A]
    mov ebx, edx
    and ebx, 3
    jz check_range
        mov eax, 4
        sub eax, ebx
        add edx, eax
    check_range:
        mov ebx, [B]
        cmp edx, ebx
        ja exit_zero
    mov eax, ebx
    and eax, 3
    sub ebx, eax
    mov eax, ebx
    sub eax, edx
    shr eax, 2 
    inc eax
    
    add ebx, edx
    shr ebx, 1 
    
    xor edx, edx 
    mul ebx
    
    jmp done
    exit_zero:
        xor eax, eax
        xor edx, edx
    done:
        ret
Sum endp
 
start:
    invoke Sum, 10, 10
    invoke Sum, 12, 12
    invoke Sum, 11, 13
    invoke Sum, 13, 12
    invoke Sum, 12, 13
    invoke Sum, 12, 16
    invoke Sum, 7778, 42332
    invoke Sum, 0, 21978978
    ;invoke ExitProcess, 0
    ret
end start

Объяснение кода листинга программы

Список элементов:

  1. Переменная edx используется для хранения значения аргумента А функции Sum.
  2. Переменная ebx используется для хранения значения аргумента В функции Sum.
  3. Переменная eax используется для хранения промежуточных значений в процессе вычисления суммы.
  4. Переменная ebx используется для хранения значения, полученного после вычисления суммы.
  5. Переменная edx используется для хранения значения аргумента В функции Sum.
  6. Переменная eax используется для хранения значения, полученного после вычисления суммы.
  7. Переменная edx используется для хранения значения аргумента А функции Sum.
  8. Переменная eax используется для хранения значения, полученного после вычисления суммы.
  9. Переменная ebx используется для хранения значения, полученного после вычисления суммы.
  10. Переменная eax используется для хранения значения, полученного после вычисления суммы.
  11. Переменная edx используется для хранения значения аргумента В функции Sum.
  12. Переменная eax используется для хранения значения, полученного после вычисления суммы.
  13. Переменная edx используется для хранения значения аргумента А функции Sum.
  14. Переменная eax используется для хранения значения, полученного после вычисления суммы.
  15. Переменная ebx используется для хранения значения, полученного после вычисления суммы.
  16. Переменная eax используется для хранения значения, полученного после вычисления суммы.
  17. Переменная edx используется для хранения значения аргумента В функции Sum.
  18. Переменная eax используется для хранения значения, полученного после вычисления суммы.
  19. Переменная edx используется для хранения значения аргумента А функции Sum.
  20. Переменная eax используется для хранения значения, полученного после вычисления суммы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы