Ñòåïåíè äåñÿòè - ÷àñòü 4
Ôèã. 7.23 (à) (íà÷àëî)
0066 9B DF 06 0058 R FILD THOUSAND ; Çàãðóçêà 10**3 â ñòåê ñîïðîöåññîðà 8087
006B 9B D9 E8 FLD1 ; Çàãðóçêà íà÷àëüíîãî çíà÷åíèÿ â ñòåê 8087
006E POWER_LOOP:
006E 9B DC 8E 0000 FMUL ST(1) ; Óìíîæåíèå ST(0) íà ST(1)
0073 9B D9 16 0000 R FST POWER_OF_TEN ; Ñîõðàíåíèå â ïàìÿòè ðåçóëüòàòà
0078 80 06 0057 R 03 ADD POWER, 3 ; Óâåëè÷åíèå ïîêàçàòåëÿ ñòåïåíè
007D A0 0057 R MOV AL, POWER ; Âûáîðêà ïîêàçàòåëÿ ñòåïåíè
0080 8D 1E 0004 R LEA BX, OUTPUT_POWER
0084 E8 00AC R CALL TRANSLATE
0087 B9 0004 MOV CX, 4
008A 8D 1E 000B R LEA BX, OUTPUT_STRING
008E 8D 36 0003 R LEA SI, POWER_OF_TEN+3
0092 FD STD ; Óñòàíîâêà ïåðåñûëêè ñ óìåíüøåíèåì àäðåñà
0093 VALUE_OUTPUT:
0093 AC LODSB ; Âûáîðêà áàéòà ðåçóëüòàòà
0094 E8 00AC R CALL TRANSLATE ; Çàíåñåíèå ñèìâîëà â âûâîäèìóþ ñòðîêó
0097 E2 FA LOOP VALUE_OUTPUT ; Öèêë ïî âñåì áàéòàì ðåçóëüòàòà
0099 8D 16 0004 R LEA DX, OUTPUT_POWER
009D B4 09 MOV AH, 9H
009F CD 21 INT 21H
00A1 80 3E 0057 R 26 CMP POWER, 38
00A6 72 C6 JB POWER_LOOP
00A8 9B DE D9 FCOMPP ; Óäàëåíèå èç ñòåêà äâóõ ÷èñåë
00AB CB RET
00AC CALCULATE_POWER ENDP
Ñîäåðæàíèå Íàçàä Âïåðåä