Найти сумму целых положительных чисел из промежутка от А до В, кратных 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
Объяснение кода листинга программы
Список элементов:
- Переменная
edxиспользуется для хранения значения аргумента А функцииSum. - Переменная
ebxиспользуется для хранения значения аргумента В функцииSum. - Переменная
eaxиспользуется для хранения промежуточных значений в процессе вычисления суммы. - Переменная
ebxиспользуется для хранения значения, полученного после вычисления суммы. - Переменная
edxиспользуется для хранения значения аргумента В функцииSum. - Переменная
eaxиспользуется для хранения значения, полученного после вычисления суммы. - Переменная
edxиспользуется для хранения значения аргумента А функцииSum. - Переменная
eaxиспользуется для хранения значения, полученного после вычисления суммы. - Переменная
ebxиспользуется для хранения значения, полученного после вычисления суммы. - Переменная
eaxиспользуется для хранения значения, полученного после вычисления суммы. - Переменная
edxиспользуется для хранения значения аргумента В функцииSum. - Переменная
eaxиспользуется для хранения значения, полученного после вычисления суммы. - Переменная
edxиспользуется для хранения значения аргумента А функцииSum. - Переменная
eaxиспользуется для хранения значения, полученного после вычисления суммы. - Переменная
ebxиспользуется для хранения значения, полученного после вычисления суммы. - Переменная
eaxиспользуется для хранения значения, полученного после вычисления суммы. - Переменная
edxиспользуется для хранения значения аргумента В функцииSum. - Переменная
eaxиспользуется для хранения значения, полученного после вычисления суммы. - Переменная
edxиспользуется для хранения значения аргумента А функцииSum. - Переменная
eaxиспользуется для хранения значения, полученного после вычисления суммы.