Форум программистов, компьютерный форум, киберфорум
Assembler: математика, вычисления
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.66/47: Рейтинг темы: голосов - 47, средняя оценка - 4.66
 Аватар для ololo111
166 / 52 / 36
Регистрация: 13.04.2012
Сообщений: 620

Дробные числа

19.10.2020, 12:49. Показов 10793. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как ввести дробное число в ассемблер?
Assembler
1
mov eax, 0.3d
- при попытке занести 0,3 (десятичных) в ячейку EAX, туда заносится целое число 3... как исправить?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.10.2020, 12:49
Ответы с готовыми решениями:

Дробные числа
В двоичной системе исчесления можно использовать дробные числа? Например: 10100,101? С помощью калькулятора я перевела число 5.5 из...

умножить дробные числа в таблице
вообщем задача след уровня Определите три отдельных связанных таблицы, содержащих следующие данные: а) числовые элементы: 06,...

Цикл: В ячейки Excel записываются целые числа. Как исправить, чтобы числа были дробные?
Программа считает в цикле Y при заданных х и находит максимум и минимум функции. В ячейки Excel записывает не правильно целые числа Y....

23
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
22.10.2020, 14:44
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от liv Посмотреть сообщение
как-то не очень
Я с ним пока занимаюсь повторным определением символа.
1
 Аватар для ololo111
166 / 52 / 36
Регистрация: 13.04.2012
Сообщений: 620
22.10.2020, 18:58  [ТС]
Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
Пример
Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
.686
.model flat, stdcall
option casemap :none
 
        include \masm32\include\windows.inc
 
        include \masm32\include\user32.inc
        include \masm32\include\kernel32.inc
        include \masm32\include\msvcrt.inc
 
        includelib \masm32\lib\user32.lib
        includelib \masm32\lib\kernel32.lib
        includelib \masm32\lib\msvcrt.lib
 
.const
        azMsgResult     db      0Dh, 0Ah, '%.6f+%.6f=%.6f', 0Dh, 0Ah, 0
        azPressAnyKey   db      0Dh, 0Ah, 0Dh, 0Ah, "Press any key to exit", 0
.data
        A               dq      1.23456
        B               dq      67.8910
.data?
        Result          dq      ?
.code
 
main    proc
 
        ;вычисление выражения Result=A+B при помощи FPU
        finit
        fld     [A]
        fadd    [B]
        fstp    [Result]
        ;вывод результата при помощи библиотеки msvcrt
        invoke  crt_printf,     ADDR azMsgResult,
                                dword ptr [A], dword ptr [A+4],\
                                dword ptr [B], dword ptr [B+4],\
                                dword ptr [Result], dword ptr [Result+4]
        ;ожидание нажатия любой клавиши
        invoke  crt_printf,     ADDR azPressAnyKey
        invoke  crt__getch
 
        invoke  ExitProcess, 0
main    endp
 
end     main
Это всё можно сделать гораздо проще и именно так как нужно большинству новичкам:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure TForm1.Button1Click(Sender: TObject);
  var A,Y,X:real;
begin
 X:=0.3;
 A:=0.5;
   asm
    finit
      fld    [X] // 0.3 
      fadd [A] // + 0.5
      fstp  [Y] // Y=0.8
   end;
  Memo1.Lines.Add('Результат: '+floattostr(Y));
end;
Не знаю для чего нужны были эти сложности с кучей непонятного текста в коде, может для того чтобы продемонстрировать новичкам свои знания, хз...

Добавлено через 23 минуты
На FPU оказалось гораздо проще вычислять чем на CPU

А вот моё задание в целом, может кому пригодится в будущем:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
procedure TForm1.Button1Click(Sender: TObject);
  var A,Y,X:real;
begin
 X:=0.3;
 A:=0.5;
   asm
    finit
 
    fld  [X] //Берём значение X (0.3)
    fmul [X] //Умножаем его на самого себя
    fstp [Y] //Сохраняем полученное значение (x*x) в Y
 
    fld  [A] //Берём значение A (0.5)
    fmul [Y] //Умножаем его на (x*x)
    fstp [Y] //Сохраняем полученное значение 0.5*(x*x) в Y
 
    fld  [X] //Берём значение X (0.3)
    fsub [Y] //Вычитаем из него 0.5*(x*x)
    fstp [Y] //Сохраняем полученное значение x-0.5*(x*x) в Y
   end;
  Memo1.Lines.Add('x - 0.5*(x*x)');
  Memo1.Lines.Add('При X = 0.3');
  Memo1.Lines.Add('0.3 - 0.5*(0.3*0.3) = '+floattostr(Y));
end;
это решение вот такого примера: y = x - 0.5*(x*x)
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8672 / 4509 / 1670
Регистрация: 01.02.2015
Сообщений: 13,937
Записей в блоге: 13
22.10.2020, 19:31
ololo111, вы недостойно себя ведёте.

В теме самый первый фрагмент кода был предложен именно вами, подстраиваясь под него я и предложил рабочий пример. А теперь вы пренебрежительно отзываетесь о моей действенной помощи.

Если не извинитесь - я как возмущённый пользователь снижу вам репу до отрицательных значений, а таких пользователей на форуме сторонятся и помощи уже ни по какому вопросу не дождётесь.
0
3410 / 1829 / 489
Регистрация: 28.02.2015
Сообщений: 3,696
22.10.2020, 19:42
Цитата Сообщение от ololo111 Посмотреть сообщение
На FPU оказалось гораздо проще вычислять чем на CPU
святык небеса, свершилось

Цитата Сообщение от ФедосеевПавел Посмотреть сообщение
с вещественными числами в форматах с "плавающей точкой" предназначены инструкции FPU,
Цитата Сообщение от liv Посмотреть сообщение
lolo111, а Вы что хотели там увидеть? Это и есть число с плавающей точкой. Чтобы с ними работать нужны команды сопроцессора,
Цитата Сообщение от ololo111 Посмотреть сообщение
Не знаю для чего нужны были эти сложности с кучей непонятного текста в коде, может для того чтобы продемонстрировать новичкам свои знания
Свои ЗНАНИЯ, у нас есть, и МЫ ими ДЕЛИМСЯ с желающими получить их, т.е. с ВАМИ

Добавлено через 10 минут
Вопрос звучал так:
Цитата Сообщение от ololo111 Посмотреть сообщение
при попытке занести 0,3 (десятичных) в ячейку EAX,
Вам показали как это решить.
Непонимание того о чем Вам говорят привело к 23-ем постам, в Вашем вопросе.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.10.2020, 19:42

Дробные числа
Всем привет. Подскажите - почему то значения ver2 и ver3 считает, как целые числа. Почему? #include <iostream> using...

Дробные числа
Доброго времени суток! Проблема такова, я не знаю как работать с дробными числами. А теперь все по порядку: Есть форма, на ней...

Дробные числа, С++
Уважаемые знатоки, требуется ваша помощь. Передо мной стоит задача посчитать приблизительную сумму ряда, путем вычисления частичных сумм....

Дробные числа
Задание: Напишите функцию main(), которая получает случайные дробные числа от пользова- теля, сохраняет их в массиве типа fraction,...

Дробные числа
пишу в Builder C++ нужно дробное число отображать в едите получается примерно так: double x; x=0.55; String y; y=...


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Сезонность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
rest api anylogic - выполнение модели на своём русском сайте
anaschu 02.07.2026
Как подружиться с AnyLogic Cloud API, победить провайдеров и развернуться Java-бэкенд в Docker на бесплатном хостинге: Двухдневный лог борьбы Всем привет! Хочу поделиться свежим (и довольно. . .
Где деньги лежат
kumehtar 02.07.2026
Это - японская подводная лодка I-52 (тип C2, кодовое имя Momi) вышла из Японии в марте 1944 года с миссией в оккупированную немцами Францию (Лорьян). Это была одна из «Янаги»-миссий по обмену. . .
Krabik для WoW 3.3.5a, многоязычный
AmbA 02.07.2026
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru