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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.02.2022, 11:02   #1
Dmitry0-10
 
Регистрация: 01.02.2022
Сообщений: 6
По умолчанию Вычислить по формуле половинного дискриминанта

Дорогие друзья, уважаемые программисты помогите пожалуйста желательно в стиле FASM
Вариант 2. Напишите программу для вычисления формулы половинного дискриминанта уравнения ax^2+bx+1. D/2=〖(b/2)〗^2-a*c. Все числа со знаком. Размер a — байт, размер b и с — слово. Проверьте работу программы в отладчике.

Код:
use16                 ;Генерировать 16-битный код
org 100h              ;Программа начинается с адреса 100h
 
    movsx ax,[a]      ;AX = a
    add ax,[b]        ;AX = a+b
    cwd               ;DX:AX = a+b
    idiv [c]          ;AX = (a+b)/c, в DX остаток
    cwd               ;DX:AX = (a+b)/c
    mov word[x],ax    ;\
    mov word[x+2],dx  ;/ x = DX:AX
 
    mov ax,4C00h      ;\
    int 21h           ;/ Завершение программы
;-------------------------------------------------------
a   db -55
b   dw -3145
c   dw 100
x   dd ?
Dmitry0-10 вне форума Ответить с цитированием
Старый 05.03.2022, 05:02   #2
Nif-naf
Форумчанин
 
Аватар для Nif-naf
 
Регистрация: 05.09.2016
Сообщений: 131
По умолчанию

В литературе есть Пильщиков. Его макросы преобразуют число в Dos
Немного о GoAsm.
Nif-naf вне форума Ответить с цитированием
Старый 05.03.2022, 16:06   #3
Nif-naf
Форумчанин
 
Аватар для Nif-naf
 
Регистрация: 05.09.2016
Сообщений: 131
По умолчанию

Код:
.data
msg db 20dup(?)
A dd 1
B dd 2
C dd 3
D dd 4
E dd 0.5
X dd ?
Y dd ?
Z dd ?
.code
fninit
fld dword ptr A
fmul dword ptr C
fstp dword ptr X
fld dword ptr B
fmul dword ptr B
fstp dword ptr Y
fld dword ptr D
fmul dword ptr X
fsub dword ptr Y
fmul dword ptr E
fchs
fstp dword ptr Z
fwait
(перевод Z в строку)
lea dx, msg
mov ah, 9h
int 21h
mov ah, 4ch
int 21h
end.
Немного о GoAsm.

Последний раз редактировалось Nif-naf; 06.03.2022 в 05:47.
Nif-naf вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить значение по формуле Helgee Помощь студентам 3 27.12.2020 10:47
Вычислить по заданной формуле нектос Паскаль, Turbo Pascal, PascalABC.NET 3 29.01.2014 17:50
Вычислить по формуле анти1720 Помощь студентам 1 17.10.2013 13:56
вычислить выражения по формуле arai uzbekova Паскаль, Turbo Pascal, PascalABC.NET 1 03.03.2013 22:11
Вычислить значения по формуле Pchelka1992 Помощь студентам 7 18.01.2012 16:08