Ñèíóñ óãëà
Ïîñëåäíèé ïðèìåð èñïîëüçîâàíèÿ ñîïðîöåññîðà 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, '$'
Ñîäåðæàíèå ðàçäåëà