Форум программистов, компьютерный форум CyberForum.ru

C++

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

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

24.11.2015, 18:10. Просмотров 238. Ответов 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 заставляет работать программу полностью с нуля. Как это решить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2015, 18:10     C++ С вставкой подпрограммы асемблера
Посмотрите здесь:

C++ Сортировка двухпутевой вставкой
Сортировка вставкой C++
Трабл со вставкой asm Visual C++
Сортировка вставкой C++
Сортировка двоичной вставкой C++
C++ Сортировка вставкой (оцените)
C++ Сортировка вставкой
C++ Сортировка массива вставкой
C++ Сортировка вставкой
C++ Ошибка с ассемблерной вставкой
C++ Декремент с ассемблерной вставкой
C++ Массив с ассемблерной вставкой

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 05:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru