Êâàäðàòíîå óðàâíåíèå
Òåïåðü ïðèâåäåì äâà ïðèìåðà, èñïîëüçóþùèõ ïðîãðàììó èíäèêàöèè
÷èñåë ñ ïëàâàþùåé òî÷êîé. Ïåðâûé ïðèìåð - ðåøåíèå êâàäðàòíîãî
óðàâíåíèÿ. Íàéäåì êîðíè óðàâíåíèÿ, çàäàâàåìîãî ñëåäóþùåé ôîðìóëîé
0 = A*X**2 + B*X + C
Èç øêîëüíîãî êóðñà ìàòåìàòèêè èçâåñòíî, ÷òî ðåøåíèå ýòîãî
óðàâíåíèÿ
X = ( -B +- SQR( B**2 - 4*A*C))/(2*A)
Ïðîãðàììà ðåøåíèÿ ýòîãî óðàâíåíèÿ î÷åâèäíà è ïîêàçàíà íà
Ôèã. 7.26. Â íåé ïðåäïîëàãàåòñÿ, ÷òî âñå òðè ïàðàìåòðà A, B è C
çàïèñàíû â âèäå öåëûõ ÷èñåë. Êîíå÷íî, åñëè âû áóäåòå èñïîëüçîâàü
ïðîãðàììó íå òîëüêî êàê ïðèìåð, íóæíî îðãàíèçîâàòü ïðîöåäóðó ââîäà
ðàçëè÷íûõ êîýôôèöèåíòîâ.
Microsoft (R) Macro Assembler Version 5.00 1/1/80 04:04:54
Ôèã. 7.26 Âû÷èñëåíèå êîðíåé êâàäðàòíîãî óðàâíåíèÿ Page 1-1
PAGE ,132
TITLE Ôèã. 7.26 Âû÷èñëåíèå êîðíåé êâàäðàòíîãî óðàâíåíèÿ
0000 STACK SEGMENT STACK
0000 0040[ DW 64 DUP (?)
????
]
0080 STACK ENDS
0000 CODE SEGMENT
ASSUME CS:CODE,DS:CODE,ES:CODE
EXTRN FLOAT_ASCII:NEAR
0000 0001 A DW 1
0002 FFFB B DW -5
0004 0006 C DW 6
0006 ???? STATUS DW ?
0008 0004 FOUR DW 4
000A 0002 TWO DW 2
000C 8C AD A8 AC EB A5 20 ERROR_MSG DB 'Ìíèìûå êîðíè',10,13,'$'
AA AE E0 AD A8 0A 0D
24
001B QUADRATIC PROC FAR
001B 1E PUSH DS ; Ñîõðàíåíèå àäðåñà âîçâðàòà
Ñîäåðæàíèå ðàçäåëà