Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/6: Рейтинг темы: голосов - 6, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 04.11.2013
Сообщений: 54
1

Ассемблерная вставка на С++

13.05.2015, 15:48. Показов 1130. Ответов 1
Метки нет (Все метки)

Написал сегодня код.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int x, y;   //Исходные числа
    float res = 0; //Результат расчетов
    cin >> x >> y;//Вводи операнды
 
    //ассемблерная вставка
    _asm{
        mov eax, x;//записываем x в регистр eax
        imul eax;//возводим eax во 2 степень
        mov ebx, eax; //переносим х^2 в регистр ebx  x^2
        mov eax, y; //записываем y в регистр eax
        imul eax; //возводим у во вторую степень 
        //mov edx, eax; // храним y^2 в регистре edx   y^2
        mov ecx, x;//в ecx помещаем значение х
        cdq; ///расширяем делимое (EAX) до EDX:EAX
        idiv ecx; //делим y^2 на х
        add eax, eax;
        
        mov res, eax;
    
    }
    cout << res;
если поменять тип на int у переменной res, то считает и выводит все правильно, но без дробной части(ибо как я понял приведение типов(((). Если возвращаю float то в результате полный мусор, что не так делаю?
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.05.2015, 15:48
Ответы с готовыми решениями:

Ассемблерная Вставка
Добрый день. начал изучать ассемблер(начал со вставок, на этом основание пишу здесь). Должен был...

Ассемблерная вставка
Всем доброй ночи!!! Я хочу попросить помощи в решении вот такой функции: Найти целое значение...

Ассемблерная вставка
Нужно заменить в русской строке похожие буквы латиницей. Ввод и вывод - на С++, всё остальное - на...

Ассемблерная вставка на С++
Добрый день, уважаемые. Столкнулся с большой проблемой когда понадобилось для увеличения скорости...

1
Эксперт С++
4974 / 3082 / 456
Регистрация: 10.11.2010
Сообщений: 11,160
Записей в блоге: 10
13.05.2015, 16:02 2
eax, ebx, ecx, edx - это всё целочисленные регистры. Для вещественных типов свои регистры и инструкции.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.05.2015, 16:02

Ассемблерная Вставка
Помогите, пожалуйста! Задано массив из 4 байт. Рассматривая его, как массив из 32 бит посчитать...

Ассемблерная вставка в с++
С помощью логических операций реализуйте запись битов в данной ячейки памяти, размером в 2 байта, в...

Ассемблерная вставка в С++
Когда в b у нас число больше 127 программа работает неправильно помогите исправить .. очень нужно...

Ассемблерная вставка
Доброго времени суток, пытаюсь пытаюсь узнать поддерживает ли мой процессор тепловые сенсоры код не...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru