Форум программистов, компьютерный форум, киберфорум
Assembler: математика, вычисления
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
1 / 1 / 0
Регистрация: 24.11.2018
Сообщений: 54

Выражение с возведением переменной в степень

24.11.2018, 14:09. Показов 5390. Ответов 46
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!

Напишите, пожалуйста, код для решения данного выражения, если не жалко.

Y=3X^3+2X-EXP(1-X)

Программа почему каждый раз пишет ошибку, когда заношу в регистр переменную Х.
хотя в начале все объявлено.
Assembler
1
2
3
4
DATASG    SEGMENT   PARA
X DB ?
    Y DB ?
DATASG  ENDS
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.11.2018, 14:09
Ответы с готовыми решениями:

Вычислить 10-ю степень двойки сложением, умножением и просто возведением в степень.
Написать код на С++ или С# или на Java Вычислить 10-ю степень двойки 1 - сложением, умножением и просто возведением в степень.

Парадокс с возведением в степень
Здравствуйте, уважаемые математики! Во многих школьных учебниках рациональная степень определяется только для неотрицательных чисел....

Проблемы с возведением в степень
#include <stdio.h> #include <iostream> #include <locale.h> #include <math.h> using namespace std; int main() { ...

46
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8672 / 4509 / 1670
Регистрация: 01.02.2015
Сообщений: 13,937
Записей в блоге: 13
20.12.2018, 00:21
Студворк — интернет-сервис помощи студентам
VTsaregorodtsev, как я понимаю, у ТС задача табуляции функции и сохранение результатов в массиве.
Потом найти минимум в этом массиве. Поэтому округление до целых чисел при записи в массив типа word - несколько странно. Не путайте ТСа, он сам преуспеет в этом.
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8672 / 4509 / 1670
Регистрация: 01.02.2015
Сообщений: 13,937
Записей в блоге: 13
20.12.2018, 14:01
programmer18, вот пример заполнения массива и чтения массива. Я только не стал копировать OutFloat для сокращения объёма
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
.model small
 
.stack 200h
 
.data
        CrLf            db      0Dh, 0Ah, '$'
        msgResult       db      'Result array:', 0Dh, 0Ah, '$'
        msgPressAnyKey  db      0Dh, 0Ah, 'Press any key to exit...', '$'
        Result          dd      10 dup(?)
.code
.386
 
main    proc
        ;инициализация сегментного регистра ds адресом сегмента данных
        mov     ax,     @data
        mov     ds,     ax
 
        ;
        fninit
 
        ;заполнение массива Result[i]:=Pi+i, i:=0..9
        fld1            ;DeltaX
        fldpi           ;X
        mov     cx,     10
        lea     si,     Result
        @@ForFill:
                fadd    st(0),  st(1)
                fst     dword ptr [si]
                add     si,     4
        loop    @@ForFill
 
        ;вывод результата
        mov     ah,     09h
        lea     dx,     [msgResult]
        int     21h
        ;вывод массива
        fninit
        mov     cx,     10
        lea     si,     Result
        @@ForShow:
                push    cx
                fld     dword ptr [si]
                add     si,     4
                push    word ptr 2
                call    OutFloat
 
                mov     ah,     09h
                lea     dx,     [CrLf]
                int     21h
                pop     cx
        loop    @@ForShow
        ;ожидание нажатия любой клавиши
        mov     ah,     09h
        lea     dx,     [msgPressAnyKey]
        int     21h
 
        mov     ah,     00h
        int     16h
 
        ;завершение программы
        mov     ax,     4C00h
        int     21h
main    endp
 
end     main
1
1 / 1 / 0
Регистрация: 24.11.2018
Сообщений: 54
20.12.2018, 20:15  [ТС]
Подскажите, как правильно положить вещественные числа в массив в цикле, получая их из вершины стека сопроцессора? Я стараюсь разобраться в этом вопросе..

Добавлено через 42 минуты
Павел, спасибо огромное! Это очень помогло!)
0
1 / 1 / 0
Регистрация: 24.11.2018
Сообщений: 54
24.12.2018, 22:31  [ТС]
Добрый вечер! Пишу поиск минимального значения в стеке fpu. Что-то не правильно работает.. что тут можно поправить, чтобы в вершине стека оказалось минимальное значение?

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
;поиск минимального значения
        mov     cx,     11
        poiskmin:
        push    cx
        fcomi st(0),st(1)   ;Сравнить ST(0) и ST(i) и установить флаги ZF, PF, CF согласно результата
        jnb next1           ;Короткий переход, если не ниже (CF=0)
        fxch st(0),st(1)  //меняем местами, чтобы min оказался в st(1)
        next1:
            fstp st(0)        //удаляем ненужное значение st(0)
            pop     cx
        loop poiskmin
        
        call outfloat
Добавлено через 1 час 11 минут
Поправляюсь.. после занесения в стек чисел прописал поиск минимального значения. Результат теперь выдается на экран, но не верный, не минимальный.. В чем может быть проблема?
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
;вывод массива
        fninit
        mov     cx,     11
        lea     si,     mas
        @@ForShow:
               
                fld     dword ptr [si]
                add     si,     4
                push    word ptr 2
                
        loop    @@ForShow
        
;поиск минимального значения
        mov     cx,     11
        poiskmin:
    
        fcom st(1)  ;Сравнить ST(0) и ST(i) и установить флаги ZF, PF, CF согласно результата
        JGE next1           ;больше либо равно
        fxch st(1)  ;меняем местами, чтобы min оказался в st(1)
        
                next1:
            fstp st(0)        ;удаляем ненужное значение st(0)
            
        loop poiskmin
        
        call outfloat
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8672 / 4509 / 1670
Регистрация: 01.02.2015
Сообщений: 13,937
Записей в блоге: 13
24.12.2018, 22:37
Для FPU после команд сравнения выставляются только флаги ZF, CY, PF - т.е. команды условных переходов для беззнаковых чисел.

Возьмите отладчик и посмотрите результат выполнения по шагам - увидите и флаги и вычисления.
0
1 / 1 / 0
Регистрация: 24.11.2018
Сообщений: 54
02.01.2019, 21:30  [ТС]
Добрый день!
У меня в стеке есть и знаковое число с минусом, которое рассчиталось при x=0. У вас есть пример как получить это минимальное? Не могу отыскать информацию((
0
Модератор
Эксперт по электронике
 Аватар для ФедосеевПавел
8672 / 4509 / 1670
Регистрация: 01.02.2015
Сообщений: 13,937
Записей в блоге: 13
02.01.2019, 21:58
Сделайте фрагмент кода на C - поиск минимального элемента в массиве.
Потом подстрочный перевод в Ассемблер с комментариями из соответствующих строк на C.
Это не шутка - первичен алгоритм.

А потом и смотрите несоответствие при отладке.
Сделайте минимальную тестовую программу с заранее набранным массивом.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.01.2019, 21:58

Выдает ошибку с возведением в степень
пишу курсач. и надо было записать программу по формуле. и выдает ошиьку на возведении в степень. модуль Math подключал. procedure...

Объясните код с возведением в степень
Программа выполняет простые операции с числами. не понимаю на этапе возведения в степень. В коде отставил комментарии. Заранее спасибо. ...

Написать в дельфи функцию с возведением в степень
скажите пжл как написать в дельфи функцию у=(1+х)^(1\3)

Создать программу с быстрым возведением в степень
Помогите, пожалуйста, создать программу с быстрым возведением в степень, которая бы выводила количество умножений, которые сделает алгоритм...

Функция с возведением в степень с исользованием рекурсии
Напишите функцию быстрого возведения в степень, которая пользовалась бы следующими свойствами: a^n=(a^n/2)2 при четном n, a^n=a*a^n-1 при...


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

Или воспользуйтесь поиском по форуму:
47
Ответ Создать тему
Новые блоги и статьи
интеграция 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
Допилил бота, думаю что окончательно. Изменения: - добавлена многоязычность - добавлено снятие скриншотов - добавлено поддержание бафов хождения по воде (для жреца, дк и шамана) - и так, по. . .
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru