![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#21 |
Пользователь
Регистрация: 24.03.2012
Сообщений: 68
|
![]()
По-моему,так первый вариант проще реализовать))
На яблоках почти все понятно,спасибо большое.
Нет,не блондинка!!
|
![]() |
![]() |
![]() |
#22 | |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
![]() Цитата:
А сложность с сопроцессором заключается только в выводе данных. Тут вам уже предлагали использовать fpu.lib из состава масм32. Можно ещё использовать msvcrt - библиотеку, но она должна быть в системе. P.S. Кстати, вы обратили внимание, что у вас формула в заголовке вообще не соответствует тому, что вычисляется. ((a+b)*c-24)/ac-1 это не то же самое, что ((a+b)*c-24)/(ac-1)
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru Последний раз редактировалось Ulex; 05.05.2012 в 01:57. |
|
![]() |
![]() |
![]() |
#23 |
Пользователь
Регистрация: 24.03.2012
Сообщений: 68
|
![]()
Могу ответить только по поводу заголовка,опечаталась,исправила на ((a+b)*c-24)/(ac-1).
А сопроцессор не много не разобралась..надо подключить библиотеку, и опять чуток помучиться с выводом результата?
Нет,не блондинка!!
|
![]() |
![]() |
![]() |
#24 | |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
![]() Цитата:
![]() Код:
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
|
![]() |
![]() |
![]() |
#25 |
Пользователь
Регистрация: 24.03.2012
Сообщений: 68
|
![]()
Хорошо.
Спасибо,Ulex.) Я так понимаю,что все операторы (функции) начинаются почти такие же ,но все на чинается с fi.
Нет,не блондинка!!
Последний раз редактировалось Stilet; 05.05.2012 в 11:55. |
![]() |
![]() |
![]() |
#26 | |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
![]() Цитата:
Правильно поставленная задача - три четверти решения.
Последний раз редактировалось DiemonStar; 05.05.2012 в 09:56. |
|
![]() |
![]() |
![]() |
#27 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,328
|
![]()
Аделинкка, давайте разделим яблоки, используя сопроцессор. Итак, у нас 11 яблок. Их нужно разделить между нами поровну.
Отступление. Функции сопроцессора работают со стеком сопроцессора. То есть входные данные должны быть на своих местах в стеке. Мы должны эти входные данные подготовить, загрузив туда (в стек сопроцессора). Результат работы функций сохраняется в том же стеке. Исходные данные: Количество людей: 2 штуки Количество яблок: 11 штук Порядок действий: - загружаем количество яблок на вершину стека, с помощью функции fild - загружаем количество людей на вершину стека (число яблок при этом сдвигается от вершины на одну позицию, см. рисунок 1) Рисунок 1: ![]() Продолжаем порядок действий: - итак, в стеке у нас: на нулевой позиции - количество людей, а на первой позиции количество яблок - вызываем функцию fdiv, которая делит число на первой позиции в стеке сопроцессора на число в нулевой позиции в стеке сопроцессора. - результат своей работы функция сохранила на вершине стека сопроцессора (см. рисунок 2). - сохраним результат в переменной, которая объявлена с директивой dt (80-битная переменная), с помощью команды fstp - сделаем преобразование содержимого 80-битной переменной result в последовательность ASCII символов (это для будущего вывода на экран), с помощью функции FpuFLtoA Рисунок 2: ![]() Код:
P.S.S. Вы видели, что данные мы загружали в стек сопроцессора с помощью fild. Здесь сокращение слов: f - FPU (Floating Point Unit) - устройство для выполнения операций с плавающей точкой i - integer - целое число ld - load - загрузка Таким образом, fild - это команда для загрузки целого числа в устройство, которое выполняет операции с плавающей точкой. Последний раз редактировалось 8Observer8; 05.05.2012 в 13:24. |
![]() |
![]() |
![]() |
#28 |
Пользователь
Регистрация: 24.03.2012
Сообщений: 68
|
![]()
Спасибо,вам всем)
У меня еще вопросик.А при работе с переменными надо писать [dword ptr]&(как в предыдущем коде?
Нет,не блондинка!!
|
![]() |
![]() |
![]() |
#29 |
Старожил
Регистрация: 08.02.2012
Сообщений: 2,173
|
![]()
обычно, явное указание на размерность переменной необходимо когда размерности переменной и регистра не совпадают.
Правильно поставленная задача - три четверти решения.
|
![]() |
![]() |
![]() |
#30 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,328
|
![]()
Аделинкка, вы ещё не все виды вывода результата на экран попробовали!
Обязательно попробуйте вывести результат работы вашей программы: 1. В консоль (функция WriteConsole) 2. В файл (функция WriteFile) 3. На элемент пользовательского интерфейса (например, в Edit) |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
вывод результата | Илья- | Общие вопросы C/C++ | 0 | 16.11.2011 17:29 |
Вывод результата блоками | nervniy | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 28.05.2011 20:26 |
Вывод результата Delphi | Nikita++ | Помощь студентам | 5 | 20.12.2010 15:48 |
Ассемблер вывод результата. | SickUSP | Помощь студентам | 0 | 28.01.2010 18:13 |