Передача управления - Assembler

Узнай цену своей работы

Формулировка задачи:

Добрый день. Я написал программу
 djnz Timer10sec, label1   ;decrement Timer10sec & jump to label 1 if not zero
                        ;djnz Timer10sec, #2H                        ;decrement Timer10sec & jump to second if not zero
                        call Timerchckaddr
                        ;jmp label2
label1:
которая должна вычитать 1 из переменной, и перепрыгивать через команду, если она не равна нулю. пробовал также оба варианта, которые сейчас закомментированы, т.е прыгать на 2 оператор и переход по метке label2. Когда я смотрю содержимое переменной Timer10sec, она уменьшается на единицу и прыгает на метку label1. 1.Правда, не прыгает на 2 оператор и дает ошибку. Подскажите пожалуйста, в чем тут дело, видимо я как-то неправильно указываю переход по абсолютному значению. 2.когда даже и переходит по метке, если не ноль, то когда она становится равной нулю, то не выполняет последующую команду (т.е. то, что стоит между djnz и label1)? p/s. При этом переменная обнуляется и становится равной FF и далее продолжает у меньшаться на 1. Т.е. счетчик работает.

Решение задачи: «Передача управления»

textual
Листинг программы
0.) Адреса 0..7
 Это регистры r0..r7 нулевого банка. Поскольку этот банк по умолчанию,
 то считаем их просто регистрами r0..r7
1.) Адреса 8..F
 Это регистры r0..r7 первого банка.
2.) Адреса 10..17
 Это регистры r0..r7 второго банка.
3.) Адреса 18..1F
 Это регистры r0..r7 третьего банка.
4.) Адреса 20..2F
 Эти адреса адресуются еще и побитно. Поэтому здесь размещаем флаги
5.) Адреса 30..7F
 Просто память. Сюда размещаем наши переменные.
6.) Адреса 80..FF
 Спец-регистры процессора, управляющие железом. К ним можно обращаться
 прямой адресацией, но нельзя косвенно через @R0 и @R1. У поздних чипов
 семейства 8051 если к этим адресам обращаться косвенно попадешь в еще
 128 байт просто памяти.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5
Похожие ответы