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

Ñèíóñ óãëà


      Ïîñëåäíèé ïðèìåð èñïîëüçîâàíèÿ ñîïðîöåññîðà 8087 - âû÷èñëåíèå
    ñèíóñà óãëà.  Ó ñîïðîöåññîðà 8087 íåò êîìàíäû âû÷èñëåíèÿ ôóíêöèè
    SIN; ñàìîå áîëüøåå, ÷òî îí ìîæåò - ýòî âûïîëíèòü êîìàíäó FPTAN,
    íàõîæäåíèå ÷àñòè÷íîãî òàíãåíñà.  ×òîáû âûïîëíèòü îïåðàöèþ SIN,
    âîñïîëüçóåìñÿ ýòîé êîìàíäîé, à òàêæå êîìàíäîé FPREM (÷àñòè÷íûé
    îñòàòîê).
 
      Ïðîãðàììà, âû÷èñëÿþùàÿ SIN, ïîêàçàíà íà Ôèã. 7.27.  Ýòà
    ïðîãðàììà âû÷èñëÿåò è ïå÷àòàåò ñèíóñû óãëîâ îò 1/2 äî 6 ñ øàãîì 1/2
    ðàäèàíà.  Âûäà÷à ïðîãðàììû àíàëîãè÷íà âûäà÷å ñëåäóþùåé ïðîãðàììû íà
    ÿçûêå Áåéñèê:
 


      10  FOR X = .5 TO 6.0 STEP .5
      20  PRINT SIN(X)
      30  NEXT X
 
      Äëÿ ïå÷àòè ðåçóëüòàòîâ èñïîëüçóåòñÿ ïîäïðîãðàììà íà Ôèã. 7.25.
 

             Microsoft (R) Macro Assembler Version 5.00              1/1/80 04:05:01
             Ôèã. 7.27 Âû÷èñëåíèå ñèíóñà óãëà                  Page     1-1
 
 
                                           PAGE    ,132
                                           TITLE   Ôèã. 7.27 Âû÷èñëåíèå ñèíóñà óãëà
 
            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               NUM_ANGLE       DW      1
            0002  0002               DEN_ANGLE       DW      2
            0004  ????               STATUS  DW      ?
            0006  0004               FOUR    DW      4
            = 0040                         C3      EQU     40H
            = 0004                         C2      EQU     04H
            = 0002                         C1      EQU     02H
            = 0001                         C0      EQU     01H
            0008  93 A3 AE AB 20 E1 AB     ERROR_MSG       DB      'Óãîë ñëèøêîì áîëüøîé', 10, 13, '$'



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