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

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

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.05.2008, 05:22   #1
forsy
 
Аватар для forsy
 
Регистрация: 16.05.2008
Сообщений: 8
По умолчанию как сложить два числа с плавающей точкой

Подскажите как сложить два числа с плавающей точкой!
Например: 45.34 + 34.76, ответ нужно округлить до 2-х цифр после запятой!
forsy вне форума Ответить с цитированием
Старый 16.05.2008, 08:43   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Сложение
Код:
.data
a				dd	23,5
b				dd 25,6
c1				dd 0
.code
	fld  qword ptr [a]
	fadd  qword ptr [b]
	fstp qword ptr [c1]
.............
Нсчет округления: http://lib.web-malina.com/getbook.php?bid=345&page=39
Хорошая идея.
I'm learning to live...

Последний раз редактировалось Stilet; 16.05.2008 в 09:08.
Stilet вне форума Ответить с цитированием
Старый 16.05.2008, 13:51   #3
forsy
 
Аватар для forsy
 
Регистрация: 16.05.2008
Сообщений: 8
По умолчанию

можешь для турбо паскаля написать?
forsy вне форума Ответить с цитированием
Старый 16.05.2008, 14:22   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Нет. У меня нет его.
А чего, этот пример в разных асмах отличаться по твоему будет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.05.2008, 18:57   #5
rpy3uH
добрый няша
Старожил
 
Аватар для rpy3uH
 
Регистрация: 29.10.2006
Сообщений: 4,804
По умолчанию

Цитата:
Сообщение от forsy Посмотреть сообщение
можешь для турбо паскаля написать?
для турбо паскаля это будет c:=a+b; !!!

Последний раз редактировалось rpy3uH; 19.05.2008 в 13:57.
rpy3uH вне форума Ответить с цитированием
Старый 17.05.2008, 16:06   #6
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,432
По умолчанию

Stilet, почему тип переменных dd, а при загрузке в стек сопроцессора qword ptr ??

И вообще, у меня никогда не работали строки типа:
a dd 25,48
Может кто-нибудь подскажет - почему...
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 17.05.2008, 21:06   #7
airyashov
Форумчанин
 
Регистрация: 02.04.2008
Сообщений: 358
По умолчанию

Код:
program sum;

var rez,x,y:double;

begin
x:=45.34;
y:=34.76;
asm
fld x
fadd y
fstp rez
end;
writeln;
writeln(x);
writeln(y);
writeln(rez);
readln;
end.
неплохо пишу на ассемблере для 80х86
icq: 3(один)7748666
mail: airyashov(а)inbox.ru
airyashov вне форума Ответить с цитированием
Старый 19.05.2008, 07:59   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Stilet, почему тип переменных dd, а при загрузке в стек сопроцессора qword ptr ??
Наверное потому что провтыкал )
Старую прогу взял, кучу кишков убрал а тут забыл поменять

Цитата:
И вообще, у меня никогда не работали строки типа:
Я на MASM 9.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.05.2008, 14:58   #9
forsy
 
Аватар для forsy
 
Регистрация: 16.05.2008
Сообщений: 8
По умолчанию

Цитата:
Сообщение от airyashov Посмотреть сообщение
Код:
program sum;

var rez,x,y:double;

begin
x:=45.34; 
y:=34.76;
asm
fld x
fadd y
fstp rez
end;
writeln;
writeln(x);
writeln(y);
writeln(rez);
readln;
end.
Че та программа неправильно считает, да и цифр много лишних !

Последний раз редактировалось forsy; 19.05.2008 в 15:35.
forsy вне форума Ответить с цитированием
Старый 19.05.2008, 15:02   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Открой в паскале в меню Option->Compiler окно Compiler Option. в Numeric Processor выстави Emulation - если 87-й сопроц отсутствует или выставь 8087 - если он есть в наличии или аппаратно поддерживается.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сравнение чисел с плавающей точкой ? Ulex Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 11 12.04.2008 21:14
Преобразование числа с плавающей точкой в строку Sibedir Общие вопросы Delphi 14 09.03.2008 21:48
Числа с плавающей точкой Blondinka Общие вопросы Delphi 8 21.09.2007 11:32