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


         

Èçîáðàæåíèå ÷èñåë ñ ïëàâàþùåé òî÷êîé - ÷àñòü 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, ìû ïîëüçîâàëèñü óìíîæåíèåì äëÿ ïåðåíîñà èñõîäíîãî



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