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

С++ для начинающих

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

Ассемблерные вставки, ошибка - C++

26.11.2012, 14:51. Просмотров 780. Ответов 10
Метки нет (Все метки)

Ошибка: 0xC0000095: Integer overflow.
Код:
mov eax,x
sub eax,a
mov ebx,x
sub ebx,c
div ebx - здесь ошибка
mov f,ebx
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.11.2012, 14:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ассемблерные вставки, ошибка (C++):

Ассемблерные вставки в C++ - C++
Собственно сабж ...: Имею следующий код : short Carry = 2; unsigned short Mas; Mas = 12; Mas = 13; Mas = 14; Пытаюсь , в...

Ассемблерные вставки - C++
Будут ли у меня проблемы, если я, поработав с регистрами, не восстановлю их после выхода из вставки? Если проблем не будет, то их не будет...

Ассемблерные вставки (Часть 3) - C++
На 4 шаге ошибка -nan(ind). Не могу разобраться... #include<iostream> using namespace std; int main() { int n = 6.0; int...

Ассемблерные вставки пример - C++
помогите пожалуйста решить вот условие: y1 = 8 +|x|, если x<1 иначе y1 = 3, если x>=1 y2 = |a|*2, если x>=1 иначе y2 =...

Ассемблерные вставки в Visual DSP++ - C++
Добрый вечер, необходимо вставить ассемблерный код ( или файл на ассемблере подключить в с++) в visual DSP++. Насколько знаю, в visual...

Как делаются ассемблерные вставки? - C++
Я слышал, что в С++ можно вставлять вставки на асм, как это делается? Спасибо.

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
26.11.2012, 14:58 #2
типы у переменных a, c, x???
lasn
1 / 1 / 0
Регистрация: 22.11.2012
Сообщений: 34
26.11.2012, 14:59  [ТС] #3
Тип переменных - int
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
26.11.2012, 15:06 #4
а значения?
lasn
1 / 1 / 0
Регистрация: 22.11.2012
Сообщений: 34
26.11.2012, 15:12  [ТС] #5
Сам пример: (x-a)/(x-c)
Для:
х:10
а:2
с:6
Значения:
c 6 int
ebx 4 unsigned long
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
26.11.2012, 15:20 #6
у меня всё работает.

Добавлено через 28 секунд
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int main()
{
    int x=10;
    int a=2;
    int c=6;
    int f;
    __asm{
        mov eax,x
        sub eax,a
        mov ebx,x
        sub ebx,c
        div ebx 
        mov f,ebx
    }
    return 0;
}
lasn
1 / 1 / 0
Регистрация: 22.11.2012
Сообщений: 34
26.11.2012, 15:37  [ТС] #7
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
у меня всё работает.
В самом деле, ваш код работает!
Но, если требуется ввести значения с клавиатуры:

C++
1
2
3
4
5
6
7
    int a,c,x,f;
    cout<<"\nВведите а: "; 
    cin>>a; 
    cout<<"Введите c: ";
    cin>>c; // 
    cout<<"Введите x: "; 
    cin>>x;
...то выдает ошибку.
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
26.11.2012, 16:07 #8
а что означает команда
Assembler
1
div         eax,ebx
в ней и происходит ошибка! Я думал div принимает один регистр
lasn
1 / 1 / 0
Регистрация: 22.11.2012
Сообщений: 34
26.11.2012, 17:03  [ТС] #9
Так у меня один регистр в div.
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,924
Записей в блоге: 1
26.11.2012, 17:11 #10
посмотри сгенерированный ассемблерный код
lasn
1 / 1 / 0
Регистрация: 22.11.2012
Сообщений: 34
26.11.2012, 18:37  [ТС] #11
Все, разобрался. Перед делением надо было помещать команду cdq для преобразования данных в учетверенное слово. Тему можно закрыть.

Добавлено через 41 минуту
Kuzia domovenok, спасибо за помощь и потраченное время!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2012, 18:37
Привет! Вот еще темы с ответами:

Ассемблерные вставки в C++. Алгоритм сортировки слиянием - C++
Нужна помощь.Необходимо реализовать алгоритм сортировки слиянием по возрастанию из элементов массивов, отсортированный по убыванию. Пишу в...

Зачем нужны ассемблерные вставки в Си (msvs) ? - C++
Объясните мне, человеку, который пока не знает ассемблер, но который хочет его в дальнейшем изучать, на кой черт нужны ассемблерные вставки...

Счетчик считающий нажатие клавиши (ассемблерные вставки) - C++
Я ещё новичок и не очень шарю в программировании,если кто поможет буду признателен :(.Нужно что бы программа считала сколько раз...

Ошибка вставки библиотеки ctype - C++
Делаю упражнение на наследование #include&lt;iostream&gt; using namespace std; #include&lt;string&gt; #include&lt;sstream&gt; #include&lt;ctype&gt; ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.11.2012, 18:37
Ответ Создать тему
Опции темы

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