Выполнение подсчёта чисел - Assembler
Формулировка задачи:
Привет всем, помогите, пожалуйста!
Задание:
Сума между числом и средним арифметическим двух других чисел.
Условно: a + ( (b+c)/2 ); Делаю в среде вижуал, подключая _asm .
Мой код:
#include "stdafx.h" #include"conio.h" #include <iostream> using namespace std; void main() { short a, b, c; cout « "Sumator a+ (b+c)/2" « endl; cout « "a="; cin » a; cout « "b="; cin » b; cout « "c="; cin » c; short res = 0; _asm { mov ax, a mov bx, b mov cx, c add bx, cx cwd mov cx, 2 div cx add ax, cx mov res, ax } cout « res; cin.get(); }
Решение задачи: «Выполнение подсчёта чисел»
textual
Листинг программы
mov ax,b add ax,c sar ax,1 add ax,a mov res,ax
Объяснение кода листинга программы
mov ax,b
- Перемещение значения переменной b в регистр ax.add ax,c
- Добавление значения переменной c к значению в регистре ax.sar ax,1
- Умеренное сдвигание значения в регистре ax вправо на 1 бит.add ax,a
- Добавление значения переменной a к значению в регистре ax.mov res,ax
- Запись значения из регистра ax в переменную res.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д