Re: Binary Coded Decimal (BCD)
От: Edmond  
Дата: 01.08.02 07:27
Оценка:
Здравствуйте 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, пусть тебе составять самый быстрый декодер
С уважением, Edmond
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.