Выполнение подсчёта чисел - 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

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

  1. mov ax,b - Перемещение значения переменной b в регистр ax.
  2. add ax,c - Добавление значения переменной c к значению в регистре ax.
  3. sar ax,1 - Умеренное сдвигание значения в регистре ax вправо на 1 бит.
  4. add ax,a - Добавление значения переменной a к значению в регистре ax.
  5. mov res,ax - Запись значения из регистра ax в переменную res.

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


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

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

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