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


         

Ñèíóñ óãëà - ÷àñòü 2


                  A8 E8 AA AE AC 20 A1
                  AE AB EC E8 AE A9 0A
                  0D 24
            001F                     SIN     PROC    FAR
            001F  1E                       PUSH    DS
            0020  2B C0                    SUB     AX, AX
            0022  50                       PUSH    AX
            0023  8C C8                    MOV     AX, CS
            0025  8E D8                    MOV     DS, AX
            0027  8E C0                    MOV     ES, AX
            0029                     DO_AGAIN:
            0029  9B DB E3                       FINIT                   ;-----ST(0)-----;-----ST(1)------
            002C  9B DF 06 0000 R                FILD    NUM_ANGLE       ;           ;
            0031  9B DE 36 0002 R                FIDIV   DEN_ANGLE       ; X = Óãîë      ;
 
             Ôèã. 7.27 (a) Ïðîöåäóðà SIN (íà÷àëî)
            0036  9B D9 EB                       FLDPI                   ; PI        ; X
            0039  9B DE 36 0006 R                FIDIV   FOUR            ; PI/4            ; X
            003E  9B D9 C9                       FXCH              ; X         ; PI/4
            0041  9B D9 F8                       FPREM                   ; R         ; PI/4
            0044  9B DD 3E 0004 R                FSTSW   STATUS
            0049  9B                       FWAIT
            004A  8A 26 0005 R                   MOV     AH, BYTE PTR STATUS+1
            004E  F6 C4 04                       TEST    AH, C2
            0051  75 55                    JNZ     BIG_ANGLE
            0053  F6 C4 02                       TEST    AH, C1          ; Îïðåäåëÿåòñÿ, íåîáõîäèìî ëè âû÷èòàíèå PI/4
            0056  74 05                    JZ      DO_R            ; Åñëè 0, òî íå íåîáõîäèìî âû÷èòàíèå PI/4
            0058  9B DE E1                       FSUBRP  ST(1), ST(0)    ; A = PI/4-R    ; ?
            005B  EB 06                    JMP     SHORT DO_FPTAN
            005D                     DO_R:
            005D  9B D9 C9                       FXCH              ; PI/4            ; R



Ñîäåðæàíèå  Íàçàä  Âïåðåä