Команды передачи управления.

Эти команды часто называют командами перехода. Позволяют выполнять различные действия в соответствии со значением внешних сигналов или выработанных в процессе выполнения операций условий. Все типы команды делятся на команды безусловного и условного перехода. К безусловным командам относятся:

JUMP адрес   ; Обеспечивается переход в программе по адресу, ; указанному в команде. При выполнении этой команды ; адрес перехода загружается в программный счетчик РС, ; причем текущее значение РС теряется.

 

SKIP   CALL имя   RET № ; Пропускается следующая команда программы ; Команда вызова подпрограммы. Осуществляется переход к ; подпрограмме с указанным именем ; Возврат из подпрограммы ; Осуществляется повторный запуск с адреса: 8 ´ №

 

При выполнении команды вызова CALL временно запоминается текущее содержимое программного счетчика (т.е. адрес команды, следующий за командой CALL и называемый адресом возврата), и загружается адрес перехода команды CALL в РС, а после выполнения программы адрес возврата передается в РС. Последняя функция реализуется специальной однобайтной командой RET. Для запоминания адресов возврата используется стековая память.

 
 

Рисунок 3.8 – Схема осуществления команд сдвига в аккумуляторе

 

Имеется группа команд условного перехода, выполняемых в зависимости от значения одного из четырех флагов состояния (C, Z, S, P). Если условие перехода выполнено, то осуществляется переход по адресу, указанному в команде. В противном случае выполняется следующая команда. Группу команд условного перехода образуют 8 команд.

 

Метка: JC Адрес ; Перейти, если С бит = 1 Jump if carry
  JNC Адрес ; Перейти, если С бит = 0 Jump if no carry
  JZ Адрес ; Перейти, если Z бит = 1 Jump if zero
  JNZ Адрес ; Перейти, если Z бит = 0 Jump if not zero
  JP Адрес ; Перейти, если S бит = 0 Jump if positive
  JM Адрес ; Перейти, если S бит = 1 Jump if minus
  JPE Адрес ; Перейти, если P бит = 1 Jump if parity even
  JPO Адрес ; Перейти, если P бит = 0 Jump if parity odd

 

3.7. Программирование операций ввода/вывода данных

Имеется две команды: IN и OUT . Эти команды используются для того, чтобы передать (считать) байт данных из канала (порта) ввода в аккумулятор, или для того, чтобы содержимое Akk передать (записать) в выбранный канал (порт) вывода. Номера порта при этом задаются операндом. Команды ввода/вывода не влияют на биты состояния.

 

Формат команды:

(Метка:) IN канал ; Комментарий

Пример 1: m1: IN 6 ; считать один байт из 6-го порта

m2: OUT 29 ; передать 1 байт из Akk в 29-й порт

 

Команда останова HLT . Она занимает в памяти 1 байт и используется для того, чтобы остановить выполнения команд в микропроцессоре. Содержимое регистров и памяти остается неизменным. Повторный запуск микропроцессора возможен только по сигналу прерывания.

 

Пример 2. Анализировать постоянно состояние порта 34h. Если на введенное число отличное от нуля, то вывести на индикатор, подключенный к порту 27h число, содержащееся в ячейке памяти с адресом 800h, увеличенное на 25.

m1: IN 34h ; Прочитать число с порта 34h

ANI FFh ; Произвести установку флагов

JZ m1 ; Если 0, то продолжать ввод с порта

LDA 0800h ; Загрузить в аккумулятор содержимое ячейки памяти

ADI 25 ; Увеличить число на 25

OUT 27h ; Выдать данные на индикатор









Дата добавления: 2016-02-09; просмотров: 1446;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.