Здравствуйте Dima2, Вы писали:
D>Помогите может у кого валяется готовый алгоритм преобразования в BCD и обратно.
D>Блин помню когда-т описал, а щас не найду.
D>Пример:
D>BCD код == 0x4711 это равно 4711 десятичное
Во первых ты не уточнил: упакованное/ не упакованное...
То что ты привёл упакованное...
Ничего особово в алгоритме нет...
Как образец смотри команды x86 коррекции, которые и осуществляют коррекцию
AAD — Ascii Adjust for Division
Usage: AAD
Modifies flags: SF ZF PF (AF,CF,OF undefined)
Used before dividing unpacked decimal numbers. Multiplies AH by
10 and the adds result into AL. Sets AH to zero. This instruction
is also known to have an undocumented behavior.
AL := 10*AH+AL
AH := 0
AAM — Ascii Adjust for Multiplication
Usage: AAM
Modifies flags: PF SF ZF (AF,CF,OF undefined)
AH := AL / 10
AL := AL mod 10
Used after multiplication of two unpacked decimal numbers, this
instruction adjusts an unpacked decimal number. The high order
nibble of each byte must be zeroed before using this instruction.
This instruction is also known to have an undocumented behavior.
Clocks Size
Пошли эту тему в Assembler, пусть тебе составять самый быстрый декодер