Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
zlodeyxgm
3 / 3 / 1
Регистрация: 08.09.2015
Сообщений: 63
#1

C++ С вставкой подпрограммы асемблера - C++

24.11.2015, 18:10. Просмотров 273. Ответов 0
Метки нет (Все метки)

Добрый день. Есть задание написать программу используя ввод и вывод С++, а расчеты выполнить с помощью ассемблера. Решил начать с малого и рассчитать часть программы.

Y=MAX(A,A+B)
Вводим А и В
В регистр 0 заносим А в регистр 1 заносим А+В
вызываем подпрограмму МАХ.
сравниваем р0 и р1 регистры
выполняем переход если р0-р1 больше нуля.
меняем регистры местами (нужное число будет лежать в регистре р0 (из регистра р1 перенесем в р0))
переход:возвращаемся в программу (нужное число будет лежать в регистре р0)

Сам код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "stdafx.h"
#include <iostream> 
using namespace std;
// Y=max(A,A+B)
int main()
{
    setlocale(LC_ALL, "Russian");
    int a,b,c,tmp,y=0,y1=0;
    cout<<"Введите А В С: ";
    cin>>a>>b>>c;
    __asm
    {
        mov eax,[a];
        mov ebx,[b];
        add ebx,eax;
        call MAX;
        MAX: CMP eax,ebx;
            JA reti;
            XCHG eax,ebx;
            reti:mov [y],eax;
        mov [y],eax;
        mov [y1],ebx;   
    }
    cout<<endl;
    cout<<"rX="<<y<<"rB="<<y1<<endl;
    cout<<"Y="<<y<<endl;
    system("pause");
    return 0;
}
При использование функции call MAX Студия выполняет программу и при закрытие консоли выдает ошибку.
При использование функции ret программа просит повторного ввода А В С. Я так понимаю функция ret заставляет работать программу полностью с нуля. Как это решить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2015, 18:10
Я подобрал для вас темы с готовыми решениями и ответами на вопрос C++ С вставкой подпрограммы асемблера (C++):

Реализовать ассемблерной вставкой расчет формулы - C++ Builder
День добрый пацаны,ребята (кому как нравиться)!!!! Кто может помогите прошу я в тупике необходимо реализовать формулу(напишу ниже) в...

Проблемы со вставкой текста методом имитации нажатия клавиш - C++ Builder
Проблемы со вставкой текста методом имитации нажатия клавиш программа вызывается по горячей клавише // помещаем текст в клипборд ...

Функции-подпрограммы - C++ Builder
Использовать подпрограммы для решения текстовой задачи. Для заданных А и В (A&lt;B) и последовательности целых чисел определите...

Массивы и подпрограммы - C++ Builder
пожалуйста помогите решить! Найти суммы компонент вещественной матрицы в её четвертях и записать их в одномерный массив . Если...

Подпрограммы в билдере - C++ Builder
А как в билдере создавать подпрограммы (функции)? В Дельфи в Type TForm1 дописывал procedure LoadData(a:integer); и потом procedure...

Разбиение проекта на подпрограммы - C++ Builder
Есть достаточно объемный проект. Я хочу вынести определенные участки кода(например, функцию генерации базы правил) в отдельные .cpp файлы....

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.11.2015, 18:10
Привет! Вот еще темы с ответами:

Трабл со вставкой asm - Visual C++
Доброго времени суток форумчане) нуждаюсь в вашем совете... Есть код у меня: #include &quot;stdafx.h&quot; int _tmain(int argc, _TCHAR*...

Логический и арифметический сдвиг (C++ с ассемблерной вставкой) - Visual C++
Здравствуйте уважаемые: Помогите пожалуйста: надо сделать логический и арифметический сдвиг с ассемблерной вставкой с++

Сортировка вставкой - C++
Всем привет. Задали задание написать код сортировки вставкой. Писал код по блок-схеме. Код получился нерабочий. Помогите найти ошибку. ...

Сортировка вставкой - C++
1)Дан массив состоящий из n элементов (n&lt;=100) Отсортировать методом вставки и вывести пятый минимум. Добавлено через 1 час 42 минуты ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru