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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2022, 17:08   #1
Alexey7300
Новичок
Джуниор
 
Регистрация: 03.05.2022
Сообщений: 1
По умолчанию Найти значение кусочной функции (FASM)

unknown.png
где x - действительное число

Помогите пожалуйста!
Alexey7300 вне форума Ответить с цитированием
Старый 03.05.2022, 19:00   #2
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Код:
; rax = x
    push 5
    fild word [rsp]
    push rax
    fld qword [rsp] ; 32-bit: fld dword [esp] ; 16-bit: mov bp, sp / fld dword [bp]
    fcom
    fstsw ax
    test ah, $44
    jz @f
    fxch st1
    fchs
    fxch st1
    fcom
    fstsw ax
    test ah, $44
    jnz .q
    fmul st0, st0
    fld1
    faddp st1, st0
    fchs
    fstp qword [rsp]
    jmp .e
@@: mov rax, 5.0 ; rax > 5
    mov [rsp], rax
.q: fstp st0 ; |rax| <= 5
.e: pop rax
    fstp st0
    add rsp, 8
Если нужен 32-битный код, просто заменяйте rax на eax. (rsp на esp)
Если нужен 16-битный код, то надо будет немного дописать. Адресоваться через sp регистр нельзя - придется сохранить его значение в bp и адресоваться через него.

ADD: Не увидел, что числа действительные

Последний раз редактировалось macomics; 03.05.2022 в 19:38.
macomics вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Составить программу для приближенного вычисления значения функции в точке х с помощью разложения в ряд Тейлора. Найти приближенное значение функции с погрешностью менее 0,0001. marysluva Помощь студентам 1 18.12.2016 18:13
Найти значение функции Y(X) при заданном X. Используя стандартные функции, вычислить Y11=[Y], где [ ] означают целую часть от ч Viraj Паскаль, Turbo Pascal, PascalABC.NET 0 23.05.2015 12:30
определить значение функции Assembler Fasm carrie bradshaw Помощь студентам 1 13.05.2014 13:38
решение задачи в Pascal: Вычислить значение числовой функции, заданной кусочной схемой Екатерина23 Помощь студентам 2 05.12.2013 20:20
вычислить значение кусочной функции. студенткаа... Помощь студентам 7 15.09.2010 02:13