Вопрос № 43300: Здравствуйте! Я ни разу не работал с дробными числами в ассемблере, всегда работал только с целочисленными.
Покажите, как будет выглядеть вот такая программа на асме:
int a = 10;
float b, c = 2.3;
b = c + a;
Спасибо....
Вопрос № 43.300
Здравствуйте! Я ни разу не работал с дробными числами в ассемблере, всегда работал только с целочисленными.
Покажите, как будет выглядеть вот такая программа на асме:
int a = 10;
float b, c = 2.3;
b = c + a;
Спасибо.
Отправлен: 17.05.2006, 09:32
Вопрос задал: Iluha (статус: 1-ый класс)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Евгений Иванов
Здравствуйте, Iluha!
a DD 10
b DQ 2.3
c EQU offset b
fild [a]
fld [c]
fadd
fst [b]
удачи.
--------- Что имеем - не храним, потерявши - плачем
Ответ отправил: Евгений Иванов (статус: Профессор) Россия, Нижний Новгород Тел.: +78313145721 Организация: M2Media.ru Адрес: Нижний Новгород, ул.Малая Ямская WWW:Eugene Ivanov ICQ: 214;88;90;76 ---- Ответ отправлен: 17.05.2006, 09:40
Отвечает: Пан Павел Константинович
Здравствуйте, Iluha!
Предположим что тип INT и FLOAT, равен 32 битам(4 байтам).
Алгоритм действия:
int a = 117;
float b = 0.25;
b = a + b;
Вот код:
.8087
CSEG segment
assume cs:CSEG,ds:CSEG,ss:CSEG,es:CSEG
org 100h
Begin:
FINIT ;Инициализация сопроцессора
fild a ;Помещаем в стек ST(0) Целое число, НО! в виде Вещественного.
fadd b ;a = a + b
fst b ;b = a
ret ;exit
a DD 117
b DD 0.25
CSEG ends
end Begin
--------- Hello Worlds
Ответ отправил: Пан Павел Константинович (статус: 8-ой класс)
Ответ отправлен: 18.05.2006, 00:42