double arrow

Переадресация

Циклы

Циклы

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

Обмен с внешней памятью

Пересылки

Относительный адрес

Константы многоразового использования бывает локальными и глобальными. Локальность определяется относительно конкретной команды. Константа, используемая командой часто, оказывается локальной для нее. На такие константы рассчитана относительная адресация. Двухадресная команда с относительным адресом короче, чем команда типа “регистр-память”.

Формат для относительной адреса:

Р R1 D2

D2 – целое со знаком. D2 используется в качестве смещения относительно УК.

Выполнение команды:

1. ((УК)) ® РК

2. (УК) + l ®УК

3. Дешифрация Р

4. (R1)® r1

5. ((УК) + D2) ® r2

6. (r1)p(r2) ® r3

7. (r3) ® R1

8. Перейти к пункту 1

Для организации пересылок вводится два новых регистра.

РАП – регистр адреса памяти

РДП – регистр данных памяти

Через эти регистры процессор связывается с ОП. По шине адреса в ОП передается адрес, а по шине данных - из??? в ОП. Когда производится операция чтения или запись результата, адрес засылается в РАП. По команде чтения ОП пересылает содержимое регистра выставленного адреса в РДП. Если команду записать, то содержимое регистра данных передается в ОП, т.е имеется группа команд, называемых командами пересылки. Они(команды) имеют формат:

(R1) ® R2 (R1) ® A1 (A1) ® R1 (A2) ® R2

Распространены в двухадресных и одноадресных процессорах где копии необходимы для сохранения данных, уничтожаемых арифметическими операциями. Все пересылки выполняются через ЦП, а именно через регистр данных памяти. Если нужно содержимое ячейки А переслать в В, то операция выполняется в два шага:

(А)® РДП ü

ý Пересылка из А в В

(РДП) ® В þ

ВЗУ управляется контроллером – специализированным процессорами, имеющими собственные регистры: регистр данных и регистр состояния. РС хранит информацию о готовности ВЗУ к работе. Есть регистр вида: ввод или вывод.

В компьютерах используется отдельное адресное пространство для внешних устройств, поэтому имеются одинаковые номера у регистров и контроллера и некоторых ячеек. Чтобы различать их, вводится команда, которая обращается к регистрам контроллера: команды ввода и вывода(обмена).

Разветвления в алгоритмах и программах.

Важный элемент алгоритмов - разветвление, т.е момент, когда возможны альтернативные варианты продолжения.

Блок – схема разветвления

//рисунок

Реализация алгоритма требует двух команд перехода, это связано с тем, что оперативная память линейна, и ветви алгоритма располагаются последовательно.

ОП

 
 
 
 
 
 
 
 
 
 

Общая часть 1

Команда условного перехода

Команда безусловного перехода
Ветвь 1

Общая часть 2
Ветвь 2

Имеют место алгоритмы в которых ветвь 2 отсутствует, тогда команда безусловного перехода не нужна.

Команда безусловного перехода - простейшая из команд передачи управления. Состоит из кода операции и адреса перехода.

Р А

Этапы выполнения команды:

1. ((УК)) → РК

2. (УК)+L → УК

3. Дешифратор Р.

4. А→УК

5. Перейти к пункту 1

Большинство команд передачи кправления - условного перехода используется, как правило, трехадресные команды. Одна из схем выполнения: при выполнении условия – переход к следующей команде. Условие может быть:

1. Если (А) < (В), то С→УК

2. Если (А)>(В), то С→УК

3. Если (А)=(В), то С→УК

4. Если (А)≠(В), то С→УК

Организация перехода разделена на 2 стадии: подготовка условия и проверка. Формирование условия готовит предыдущая команда.

Для передачи значения истинности условия в процессоре существует регистр флагов (РФ). Часть разрядов РФ не используется(резерв), а остальные делятся на управляющие, системные, разряды состояний. Совокупность разрядов состояния называют регистром признаков результата. (РПр) Многие команды арифметико-логического типа вырабатывают признак результата - бит, записывающийся в один из разрядов РФ. Разрядность флагов состояния от 4 до 6: флаг нуля, флаг знака, флаг переполнения, флаг отрицания результат и т.д.

То есть команды, не вырабатывают признак результата, сохраняют первое значение в регистре флага.

Каждой команде условного перехода ставится в соответствие определенный набор флагов. На команду условного перехода влияет предшествующая команда, последней выработавшей признак результата. Конечной командой блока подготовки проверки условие, является команда сравнения. Выполняется как вычитание, в память результат не записывается, а записывается в регистр признаков.

Схема алгоритма:

1. ((УК))→РК

2. (УК)+L→РК

3. Дешифрация р.

4. Если [(РПр) and (Np)]≠0, то А2 → УК

5. Переход к пункту 1

Np-набор признаков

Цикл- участок программы, обеспечивающее многократное выполнение некоторой части алгоритма до тех пор, пока не выполнится условие окончания. Цикл состоит из внутренней части, выполняемой многократно, и внешней – команд подготовки и команд завершения. Многократность обеспечивается командой условия передачи.

 
 
 
 
 
 
 
 

Первая команда внутреннего цикла - та, на которую указывает стрелка. Последняя – та, откуда выходит стрелка. Между ними - тело цикла.

Классификация циклов:

-По расположению проверки условия перехода бывают: с предшествующей и с последующей (например untile и repeat)

-По типу алгоритма (цикл с заданным числом повторений, цикл итерационного типа, цикл смешанного типа)

1. Цикл с заданным числом повторов(со счетчиком)

Управление осуществляется с помощью специальной переменной – счетчик. С этим связаны задачи, когда надо программировать элементы, найти максимум и т.д

Схема:

Инициализация
I = 1,3

Основные вычисления
N-i=0?
I = i+1
I, s = s +i

Условие перехода
Подготовка перехода

2. Цикл итерационного типа – по имеющемуся приближенному значению строят более точное для решения с нужной точностью. Количество повторов заранее неизвестно. Цикл можно посчитать отдельным блоком программы, решающим некоторою логическую законченную задачу, т.е цикл можно считать элементом программы, как их команды.

Цикл должен завершиться командой проверки значения счетчика, пока не будет выполнено условие. При этом необходимо продвигать адреса в команды.

Изменение адресов: ее можно выполнить прибавлением, вычитанием заранее подобранной константы.

Р А+1 с В+1
  K   m   m   m

C – беззаковая константа

K и m - число бит в соотв.

D: D+1; ячейка где расположена команда цикла.

Алгоритм:

1. D(C1)→H – инициализация счетчика

2. D+1(A+1)^(CJ) →B+1 – вычисление в цикле

3. D+2(D+1)(v)(C)→D+1 – изменение адреса

4. D+3(H) – (C2) → H – продвижение счетчика

5. D+4 zf ≠1, DA→A+1 – нет D+5, условие перехода на ≠ 1


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



Сейчас читают про: