ВУЗ:
Составители:
не будет выбран другой блок памяти, все переходы осуществляются только в пределах
выбранного блока памяти. Например, если требуемая подпрограмма располагается в другом
блоке памяти, доступ к ней осуществляется парой команд: выбор блока памяти и вызов
подпрограммы. После выполнения подпрограммы для передачи управления в исходный блок
памяти необходимо выполнить команду выбора исходного блока памяти. В том случае, если
в подпрограмме нет этой команды, возврат в исходный блок будет для нее выполнен
правильно, однако любая очередная команда перехода в исходном блоке передает
управление в другой блок. Это особенность является источником большинства ошибок при
программировании.
Команда передачи управления JMPP@A позволяет выполнить переход к ячейке
памяти в зависимости от содержимого аккумулятора. Эта команда может эффективно
использоваться для передачи управления одной из процедур в зависимости от кода символа,
вводимого в аккумулятор с клавиатуры, также эта команда может реализовать механизм
множественных ветвлений по программе в от результатов предыдущих вычислений.
Команда JBBIT ADDR передает управление по заданному адресу ADDR, если
заданный бит аккумулятора имеет значение 1. Шестнадцатеричные коды восьми возможных
команд JBBIT в зависимости от номера тестируемого бита аккумулятора выглядят
следующим образом:
JB7
JB6 JB5 JB4 JB3 JB2 JB1 JB0
F2 D2 B2 92 72 52 32 12
Для организации программных циклов используется команда DJNZ REG, ADDR
(декремент регистра и переход, если не нуль), которая позволяет использовать любой из
восьми рабочих регистров в качестве счетчика и осуществить переход в пределах текущей
страницы памяти программ.
Перечень команд передачи управления и вызова подпрограмм приведен в таблице 4.7.
Таблица 4.7
Мнемоника Код
двоичный
Время
в циклах
Содержание
DJNZ
REG,ADDR
11101REG
aaaaaaaaa
2
(REG)-1→
→(REG), если REG≠0, то ADDR→(CK),
иначе (CK)+2→(CK)
JBBIT ADDR BIT10010
aaaaaaaa
2
BIT=1, то ADDR→(CK
0-7
),
иначе (CK)+2→(CK)
JFO ADDR 10110110
aaaaaaaa
2
F0=1, то ADDR→(CK
0-7
),
иначе (CK)+2→(CK)
JF1 ADDR 01110110
aaaaaaaa
2
F1=1, то ADDR→(CK
0-7
),
иначе (CK)+2→(CK)
JMP ADDR aaa00100
aaaaaaaa
2
(A
8-10
)→(CK
8-10
)
(A
0-7
)→(CK
0-7
)
DBF→(CK
11
)
JMPP @A 10110011 2
((A))→(CK
0-7
)
JC ADDR 11110110
aaaaaaaa
2
C=1, то ADDR→(CK
0-7
),
иначе (CK)+2→(CK)
JNC ADDR 11100110
aaaaaaaa
2
C=0, то ADDR→(CK
0-7
),
иначе (CK)+2→(CK)
JTO ADDR 00110110
aaaaaaaa
2
TO=1, то ADDR→(CK
0-7
),
иначе (CK)+2→(CK)
не будет выбран другой блок памяти, все переходы осуществляются только в пределах выбранного блока памяти. Например, если требуемая подпрограмма располагается в другом блоке памяти, доступ к ней осуществляется парой команд: выбор блока памяти и вызов подпрограммы. После выполнения подпрограммы для передачи управления в исходный блок памяти необходимо выполнить команду выбора исходного блока памяти. В том случае, если в подпрограмме нет этой команды, возврат в исходный блок будет для нее выполнен правильно, однако любая очередная команда перехода в исходном блоке передает управление в другой блок. Это особенность является источником большинства ошибок при программировании. Команда передачи управления JMPP@A позволяет выполнить переход к ячейке памяти в зависимости от содержимого аккумулятора. Эта команда может эффективно использоваться для передачи управления одной из процедур в зависимости от кода символа, вводимого в аккумулятор с клавиатуры, также эта команда может реализовать механизм множественных ветвлений по программе в от результатов предыдущих вычислений. Команда JBBIT ADDR передает управление по заданному адресу ADDR, если заданный бит аккумулятора имеет значение 1. Шестнадцатеричные коды восьми возможных команд JBBIT в зависимости от номера тестируемого бита аккумулятора выглядят следующим образом: JB7 JB6 JB5 JB4 JB3 JB2 JB1 JB0 F2 D2 B2 92 72 52 32 12 Для организации программных циклов используется команда DJNZ REG, ADDR (декремент регистра и переход, если не нуль), которая позволяет использовать любой из восьми рабочих регистров в качестве счетчика и осуществить переход в пределах текущей страницы памяти программ. Перечень команд передачи управления и вызова подпрограмм приведен в таблице 4.7. Таблица 4.7 Мнемоника Код Время Содержание двоичный в циклах DJNZ 11101REG 2 (REG)-1→ REG,ADDR aaaaaaaaa →(REG), если REG≠0, то ADDR→(CK), иначе (CK)+2→(CK) JBBIT ADDR BIT10010 2 BIT=1, то ADDR→(CK0-7), aaaaaaaa иначе (CK)+2→(CK) JFO ADDR 10110110 2 F0=1, то ADDR→(CK0-7), aaaaaaaa иначе (CK)+2→(CK) JF1 ADDR 01110110 2 F1=1, то ADDR→(CK0-7), aaaaaaaa иначе (CK)+2→(CK) JMP ADDR aaa00100 2 (A8-10)→(CK8-10) aaaaaaaa (A0-7)→(CK0-7) DBF→(CK11) JMPP @A 10110011 2 ((A))→(CK0-7) JC ADDR 11110110 2 C=1, то ADDR→(CK0-7), aaaaaaaa иначе (CK)+2→(CK) JNC ADDR 11100110 2 C=0, то ADDR→(CK0-7), aaaaaaaa иначе (CK)+2→(CK) JTO ADDR 00110110 2 TO=1, то ADDR→(CK0-7), aaaaaaaa иначе (CK)+2→(CK)
Страницы
- « первая
- ‹ предыдущая
- …
- 72
- 73
- 74
- 75
- 76
- …
- следующая ›
- последняя »