Вопрос по АТ89с2051

Do you have a question? Post it now! No Registration Necessary

Threaded View
                        Здравствуйте, All!
Когда нужно инкрементировать АКК с последующей десятичной коррекцией - понятно

     inc   a
     da    a

т.е старшая и младшая тетрада не выдезут за пределы 99.

а как бы обойтись малой кровью, если нужно вычитать с той же десятичной
коррекцией?  91,90,89..., а не 91,90,8F
Предпологается тетрадами управлять 2 дешифратарами семисегментных индикаторов.


                       C уважением, Александр.


Re: Вопрос по АТ89с2051
Hемедленно нажми на RESET, Alexander Martynenko!


 AM>      inc   a
 AM>      da    a
 AM> т.е старшая и младшая тетрада не выдезут за пределы 99.
 AM> а как бы обойтись малой кровью, если нужно вычитать с той же десятичной
 AM> коррекцией?  91,90,89..., а не 91,90,8F

       dec a
       da  a

       add a, 99
       da a

   :-/

--
  Mm<M^Sage 08.Mar.2001 time 22:50 - FaDeaWaY +-+-+-+ FaDeaWaY +-+-+-

Вопрос по АТ89с2051
                        Здравствуйте, Kirill!

 Как-то Пятница Декабрь 17 2004 04:16, Kirill Frolov писал Alexander
Martynenko:

 AM>> т.е старшая и младшая тетрада не выдезут за пределы 99.
 AM>> а как бы обойтись малой кровью, если нужно вычитать с той же
 AM>> десятичной коррекцией?  91,90,89..., а не 91,90,8F

 KF>        dec a
 KF>        da  a

 KF>        add a, 99
 KF>        da a
Hе работает :( написал такую прогу (для проверки) и получил:

    мнемоника               состояние аккумулятора

    mov a,#50h                  0101 0000   (50)
    dec a                       0100 1111   (4f)
    da  a                       0101 0101   (55)
    add a                       1110 1110   (ee)
    da  a                       0101 0100   (54) - это результат!
что-то тут не то :-/. Должно быть 49!
P.S. проверял симулятором avsim51
Вопрос все еще открыт :)



                       C уважением, Александр.


Site Timeline