Выполнение подсчёта чисел - Assembler

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

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

Привет всем, помогите, пожалуйста! Задание: Сума между числом и средним арифметическим двух других чисел. Условно: a + ( (b+c)/2 ); Делаю в среде вижуал, подключая _asm . Мой код:
Листинг программы
  1. #include "stdafx.h"
  2. #include"conio.h"
  3. #include <iostream>
  4. using namespace std;
  5. void main()
  6. {
  7. short a, b, c;
  8. cout « "Sumator a+ (b+c)/2" « endl;
  9. cout « "a=";
  10. cin » a;
  11. cout « "b=";
  12. cin » b;
  13. cout « "c=";
  14. cin » c;
  15. short res = 0;
  16. _asm
  17. {
  18. mov ax, a
  19. mov bx, b
  20. mov cx, c
  21. add bx, cx
  22. cwd
  23. mov cx, 2
  24. div cx
  25. add ax, cx
  26. mov res, ax
  27.  
  28. }
  29. cout « res;
  30. cin.get();
  31. }

Решение задачи: «Выполнение подсчёта чисел»

textual
Листинг программы
  1. mov ax,b
  2. add ax,c
  3. sar ax,1
  4. add ax,a
  5. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы