Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УП по циклу ЛР ОМПТ.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
675.5 Кб
Скачать

Двухбайтные пересылки

Для пересылок между регистрами процессора и памятью имеются команды типа LHLD adr – чтение памяти и SHLD adr – запись в память. Регистрами в этих командах являются регистры пары HL, а память можно определять прямо в самой команде адресом adr. Этот адрес определит место младшего байта числа, а место старшего байта числа окажется по адресу adr+1.

Пример 1.26.

Адрес Число Мнемокод Комментарий

0800 2A 00 0B LHLD 0B00h ; пересылка числа из регистровой пары

; HL в память: M(0B00)(L),

; M(0B01)(H)

0803 22 10 0B SHLD 0B10h ; пересылка числа из памяти

; в регистровую пару HL: M(0B00)(L),

; M(0B01)(H)

Несмотря на то что на выполнение этих команд требуется 16 тактов, аналогичные действия с применением нескольких команд однобайтных пересылок оказываются гораздо более долгими. Например, 36 тактов потребуется в варианте примера 6.7:

Пример 1.27

Метка Мнемокод Комментарий

LDA 0B00 ; 13 тактов

MOV L,A ; 5 тактов

LDA 0B01 ; 13 тактов

MOV H,A ; 5 тактов

Для двухбайтных пересылок между регистрами есть только одна команда, причём не обычная пересылка, а обмен содержимым регистровых пар DE и HL – команда HCHG.

Кроме того, имеются команды непосредственной загрузки регистровых пар и 16-разрядного регистра указателя стека SP вторым и третьим байтами из состава байтов команды – LXI B,d16; LXI D,d16; LXI H,d16; LXI SP,d16. В этих командах d16 – загружаемое двухбайтное число, а регистровые пары обозначены буквами своих старших регистров.

Пример 1.28.

Адрес Число Мнемокод Комментарий

0800 01 00 00 LXI B,0000h ; Пересылка числа 0 в регистр. пару BC

0803 21 97 19 LXI H,1997h ; Пересылка числа 1997 в регистровую

; пару HL: (H)19, (L)97.

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

Работая обычным образом в состоянии выполнения программы, процессор интерпретирует команды программы последовательно. Прочитав из памяти код очередной команды по адресу, на который указывает счётчик команд, процессор дешифрирует этот код, определяет из скольки байт эта текущая команда состоит. Далее он увеличивает содержимое счётчика команд (PC) на число равное количеству байт текущей команды. Если команда однобайтная, то (PC)(PC)+1; если команда двухбайтная, то (PC)(PC)+2; если команда трёхбайтная, то (PC)(PC)+3. После выполнения текущей команды в счётчике команд, таким образом, уже готов адрес новой команды. Новая команда и последующие интерпретируются далее аналогичным образом. Команды выполняются по очереди в порядке их размещения в памяти.

Вместе с тем, часто по условиям алгоритма возникает необходимость в изменении последовательного хода выполнения команд и организации переходов в различные точки программы. Для этой цели предназначены команды передачи управления. Они способны сформировать новое содержимое счётчика команд таким образом, чтобы обеспечить переход нужную точку. То есть – передать управление процессором тем командам, которые начинаются с адреса точки перехода.

Кроме того, нередко алгоритм требует не просто переходов в программе. Он требует ветвлений хода программы на разные пути, выбираемые в зависимости от результата анализа выполнения каких-то задаваемых условий. В системе команд процессора 8080 для реализации таких действий имеются команды условных переходов. При этом условиями для переходов являются состояния битов регистра признаков.

Команды передач управления различаются наличием или отсутствием условия на выполнение перехода (условный или безусловный переходы). Команды безусловных переходов различаются способом определения нового содержимого счётчика команд. А команды условных переходов различаются вариантами условий.