Èçîáðàæåíèå ÷èñåë ñ ïëàâàþùåé òî÷êîé - ÷àñòü 6
00CD 8A 07 MOV AL,[BX] ; Âûáîðêà áàéòà
00CF 51 PUSH CX
00D0 B1 04 MOV CL,4
00D2 D2 E8 SHR AL,CL ; Ñäâèã ñòàðøåé öèôðû
00D4 59 POP CX
00D5 E8 00DF R CALL PRINT_NYBBLE ; Ïå÷àòü ñòàðøåé öèôðû
00D8 8A 07 MOV AL,[BX] ; Âûáîðêà ìëàäøåé öèôðû
00DA E8 00DF R CALL PRINT_NYBBLE ; Ïå÷àòü ìëàäøåé öèôðû
00DD 4B DEC BX ; Ïåðåõîä íà ñëåäóþùóþ ïàðó öèôð
00DE C3 RET
00DF PRINT_BYTE ENDP
;----- Ïå÷àòü îäíîé äåñÿòè÷íîé öèôðû èç ðåãèñòðà AL
00DF PRINT_NYBBLE PROC NEAR
00DF 24 0F AND AL,0FH ; Âûäåëåíèå ìëàäøåé öèôðû
00E1 04 30 ADD AL,'0' ; Ïðåîáðàçîâàíèå â ñèìâîë
00E3 AA STOSB ; Ñîõðàíåíèå â âûâîäèìîé ñòðîêå
00E4 C3 RET
00E5 PRINT_NYBBLE ENDP
00E5 CODE ENDS
END
Ôèã. 7.25 Ïðåîáðàçîâàíèå ïëàâàþùåãî ôîðìàòà â òåêñòîâûé (ïðîäîëæåíèå)
Ïåðâàÿ ÷àñòü ïðîãðàììû îïðåäåëÿåò ïðàâèëüíûé ïîðÿäîê èñõîäíîãî
÷èñëà.  ïðîãðàììå ëîãàðèôì ÷èñëà ïî îñíîâàíèþ 10 íàõîäèòñÿ ñ
ïîìîùüþ ôîðìóëû
Log10(X) = Log2(X)/Log2(10)
Çàòåì îêðóãëÿåòñÿ ïîðÿäîê â íàïðàâëåíèè ìèíóñ áåñêîíå÷íîñòè,
îïÿòü èñïîëüçóÿ óïðàâëåíèå îêðóãëåíèåì. Â ïðåäûäóùåì ïðèìåðå,
âû÷èñëÿÿ 10X, ìû ïîëüçîâàëèñü óìíîæåíèåì äëÿ ïåðåíîñà èñõîäíîãî
Ñîäåðæàíèå Íàçàä Âïåðåä