Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2008, 13:22   #1
Vasiliusis
 
Регистрация: 13.11.2008
Сообщений: 4
По умолчанию Почему отличаются результаты (Ассемблерная вставка в С++)? Объясните

Добрый день.
Скажите пожалуйста, почему различаются результаты при выполении арифметических операций на чистом С++ и при использовании АССЕМБЛЕРНОЙ ВСТАВКИ?

Код:
#include <iostream>
#include <windows.h>
#include <iomanip>
using namespace std;

BYTE ddS = 10;
BYTE ccS = 10;
BYTE aS = 6;

WORD NUM;

void main()
{
	__asm
	{
		MOV AL, ccS
		SUB AL, aS
		INC AX
		PUSH AX
		MOV AL, ccS
		MOV BL, ddS
		CBW
		DIV BL		
		PUSH AX		
		MOV AL, 3
		MOV BL, aS
		MUL BL
		MOV BL, 2
		CBW
		DIV BL
		POP BX
		ADD AL, BL
		POP BX
		CBW
		DIV BL
		MOV NUM, AX
	}
	cout<<"ASSEMBLER = "<<NUM<<endl;
	cout<<"C++ = "<<setprecision(3)<<showpoint<<(static_cast<float>(ccS)/ddS+(3*aS)/2)/(ccS-6+1)<<endl;
	system("PAUSE");
}
Сейчас все сходится.

Можете взять отличные от этих значения - увидите результат.
Нужно для вывода по лабе.

Благодарствую.

Последний раз редактировалось Vasiliusis; 13.11.2008 в 20:33. Причина: Добавление кода
Vasiliusis вне форума Ответить с цитированием
Старый 13.11.2008, 13:36   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

по идее разницы по результатам не должно быть. где-то ошибка вероятно
pu4koff вне форума Ответить с цитированием
Старый 13.11.2008, 13:42   #3
Vasiliusis
 
Регистрация: 13.11.2008
Сообщений: 4
По умолчанию

ошибка исключается
Vasiliusis вне форума Ответить с цитированием
Старый 13.11.2008, 19:17   #4
still_alive
Great Code Monkey
Форумчанин
 
Аватар для still_alive
 
Регистрация: 09.08.2007
Сообщений: 533
По умолчанию

Код в студию.
Результаты не могут быть разными. Это только кажется, что они разные, а на самом деле они одинаковые.
still_alive вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
составить программу для вычисления значения функции и результаты выдать на печать. Бейсик SvetlanaFF Помощь студентам 13 28.10.2018 19:24
Составить программу для вычисления значения функции и результаты выдать на печать Pleasant_girl Помощь студентам 8 22.12.2009 22:57
Сортировать результаты вычислений Jana Microsoft Office Excel 2 03.11.2008 08:36
Паскаль. Определить номер позиции,в которой символы отличаются Stelix Помощь студентам 6 06.11.2007 16:53
Чем отличаются фундаментальные типы данных от общих? avp Общие вопросы Delphi 1 17.07.2007 09:02