Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Asm для начинающих > Адресация неупакованных BCD - чисел


Автор: danika 15.4.2013, 20:21
  Здравствуйте.

 Помогите разобраться с представлением неупакованных BCD -чисел в памяти.

 Неупакованные BCD - числа - каждый байт числа содержит одну десятичную цифру,причём в неупакованном варианте десятичная цифра находится в младшей тетраде байта.

Вот предварительный код.

MASM

Код

;............ 
.data
   
    BCD_1 db 8,7,4,5
    BCD_2 db 5,4,7,8
    Result db 4 dup (0)
     

    .code                       ; Tell MASM where the code starts

; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

start:                          ; The CODE entry point to the program

    call main                   ; branch to the "main" procedure

    exit

; «««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««««

main proc

  mov esi, offset BCD_1
  mov edi, offset BCD_2
  mov edx, offset Result
  
  mov ecx, 4
A1:
  mov al, byte ptr [esi]
  sbb al, byte ptr [edi]
  aas
  mov byte ptr [edx], al
  inc esi
  inc edi
  inc edx
  loop A1
  
  mov edx, offset Result
  print str$ (edx)

;......................................
  


В мануалах, представление данных в памяти - "младший байт - младший адрес".
Смотрю в hex- редакторе, число 8745 "растёт" в адресах от старшего разряда числа (8) к младшему разряду ...(5)
числа.

Т.е  первый СТАРШИЙ  РАЗРЯД (8) распологается по МЛАДШЕМУ адресу, соответственно при арифметических
операциях команда SBB начинает обработку с числа (8).Смотрел в отладчике.

Предполагаю, что я путаюсь в понятиях,но где не, пойму?

Получается,что прежде,чем производить какие-либо действия, нужно инверсировать(перевернуть) число или
строку , если число вводиться пользователем с консоли.

Помогите разобраться.
Заранее спасибо.

PS:  Команда AAS в данном коде лишняя, но в дальнейшем понадобиться для получения отрицательного значения при вычитании.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)