Сборник по задачам и примерам Assembler

       

Преобразование упакованного BCD-числа размером N байт в неупакованное BCD-число (макрокоманда)



Преобразование упакованного BCD-числа размером N байт в неупакованное BCD-число (макрокоманда)

BCD_PACK_TO_UNPACK macro PACK.N. UNPACK local cycl

;BCD_PACK_TO_UNPACK PACK,N.UNPACK - макрокоманда преобразования упакованного BCD-числа размером N байт в неупакованное BCD-число размером N*2 байт ;Порядок следования байтов - младший байт по младшему адресу :(Intel).

сохраняем регистры ...

push ds

pop es

mov ecx.N

eld ;порядок обработки BCD-цифр - начиная с младшей

lea edi.UNPACK

lea esi.PACK cycl: xorax.ax

lodsb ;загрузить очередные 2 упакованные BCD-цифры из PACK в al

гог ах.4

гог ah.4

stosw

loop cycl восстанавливаем регистры ...

endm



Содержание раздела