Assembler äëÿ íà÷èíàþùèõ

Êâàäðàòíîå óðàâíåíèå


      Òåïåðü ïðèâåäåì äâà ïðèìåðà, èñïîëüçóþùèõ ïðîãðàììó èíäèêàöèè
    ÷èñåë ñ ïëàâàþùåé òî÷êîé.  Ïåðâûé ïðèìåð - ðåøåíèå êâàäðàòíîãî
    óðàâíåíèÿ.    Íàéäåì êîðíè óðàâíåíèÿ, çàäàâàåìîãî ñëåäóþùåé ôîðìóëîé
 
      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        ; Ñîõðàíåíèå àäðåñà âîçâðàòà



Ñîäåðæàíèå ðàçäåëà