Obsah / Utility / TEXTFORM / SDWToTextBuf
Zdrojový kód: INCLUDE\UTIL\TEXTFORM.INC, UTIL\TEXTFORM.ASM
Související:
SDWToTextBufN | Délka textu neformátovaného čísla DWORD se znaménkem | |
FormToTextBuf | Zformátování textu do bufferu |
SDWToTextBuf - Konverze neformátovaného čísla DWORD se znaménkem na text
Funkce SDWToTextBuf konvertuje neformátované 32-bitové celé číslo se znaménkem na text.
|
Na vstupu funkce obsahuje registr EAX číslo se znaménkem ke konverzi, registr ECX požadovaný minimální počet znaků (včetně znaménka), registr ESI zbývající volné místo v cílovém bufferu a registr EDI ukazatel na cílový buffer. Na výstupu z funkce jsou registry ESI a EDI posunuty na novou zápisovou pozici.
|
Je-li konvertované číslo nezáporné, je obsluha převedena na funkci pro konverzi čísla bez znaménka UDWToTextBuf, jinak se pokračuje obsluhou záporných čísel.
Není-li volné místo v cílovém bufferu, funkce se ukončí bez další obsluhy. Jinak se do výstupního bufferu uloží znaménko "-".
Konvertované záporné číslo se negací převede na absolutní hodnotu. Požadovaná minimální délka čísla v registru ECX se sníží o 1 bajt, který byl spotřebovaný uložením záporného znaménka. Přitom ale nesmí podtéct pod hodnotu 0 pokud byla předtím zadaná. Proto je dekrementace provedena "opatrně", pokud dekrementací nastalo podtečení pod nulu (nastavil se příznak přenosu CF), tak je následující instrukcí "adc" původní nula opět navrácena.
Výsledné číslo se poté zkonvertuje do výstupního bufferu voláním funkce UDWToTextBuf.
Obsah / Utility / TEXTFORM / SDWToTextBuf