Звоните! 
 (926)274-88-54 
 Бесплатная доставка. 
 Бесплатная сборка. 
Ассортимент тканей

График работы:
Ежедневно. С 8-00 до 20-00.
Почта: soft_hous@mail.ru
Читальный зал -->  Полупроводниковая схемотехнология 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 [ 124 ] 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168

описаны в разд. 21.2.2. При этом прог- гов программы. В этом случае программа рамма имеет следующий вид: имеет следующий вид:

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

Адрес

Шестнаддатеричный Мнемоника код

0107 0108 0109

018F

7F 01 8F

JMP{ext.)018F

Следующая команда, которую необходимо вьшолнить

Адрес

Шестнадцатернчный Мнемоника код

0107 0108

0109 -Н -I- ОЕ = = 0117

20 ОЕ

BRA ОЕ

Следующая команда, которую необходимо выполнить

б) Адресация с индексированием

Адрес Шестнадцатеричный Мнемоника код

Отсчет смещения ведется от адреса, следующего за командой и являющегося относительным адресом перехода. Если смещение равно 00, то программа выполняется последовательно без реализации перехода.

0107 0108

6Е 1А

JMP (inx.) 1А

X -н 1А

Следующая команда, которую необходимо вьшолнить

При относительно адресуемом переходе (Branch) указывается не абсолютный адрес следующей команды, которую необходимо выполнить, а величина смещения, на которую нужно изменить содержимое программного счетчика. Это удобнее, так как при переходе в другую область адресов изменения программы не потребуется. Величина смещения задается с помощью 7-разрядного числа со знаком в дополнительном двоичном коде, который описан в разд. 19.5.6. Следовательно, область перехода ограничена зоной -128... -1-127 ша-

Условные переходы

Условные переходы выполняются только тогда, когда установлен соответствующий признак регистра признаков. При этом применяется только относительный способ адресации. Если условие не выполняется, то перехода не происходит и программа выполняет команду, следующую за командой условного перехода с относительным способом адресации. В табл. 21.7 перечислены важнейшие команды условного перехода. В командах, которые относятся к арифметике в дополнительном двоич-. ном коде, знак при переполнении интерпретируется верно, так как производится оценка признака - переполнения. Мерой всегда служит операция, указанная в графе Комментарии . В этой графе приведены тесты по проверке определенных двоичных комбинаций.

Поясним использование команд условного перехода на примере. Пусть необходимо загрузить массив О, 1, 2, 3 ...



Команды перехода микропроцессора МС 6800

Мнемоника

Способы адресацнн

Комментарии

Переход с относительной адресацией, если <0 Переход с относительной адресацией, если >0 Переход с относительной адресацией, если < О

Переход с относительной адресацией, если F = О Переход с относительной адресацией, если V = i Переход с относительной адресацией, если > О Переход с относительной адресацией, если О

Переход с относительной адресацией, если >0

Условия для арифметики в прямом коде

Условия для арифметики в дополнительном коде

Переход с относительной адресацией, если <0 Переход с относительной адресацией, если = О Переход с относительной адресацией, если by = I Условный переход к подпрограмме Безусловный переход к подпрограмме Возврат из подпрограммы Программное прерывание Возврат из прерывающей программы Ожидание прерывания

JMP BRA BNE BEQ

BLS ВН1 BCS

BVC BVS BGE BLE

BLT BPL BMI BSR JSR RTS SWI RTI WAI

S

S я

о о X

20 26 27

28 29 2С 2F

2D 2А 2В 8D

S В Л п о ч о-в ив

Безусловный переход с прямой или индексной адресацией

Безусловный переход с относительной адресацией Переход с отаосительной адресацией, если 0 Переход с относительной адресацией, если = О Переход с относительной адресацией, если > О

7Е 6Е

Z = О Z = 1

С = О

с + Z = 1 с + Z = о с = 1

v= о

V= 1

N® F= о

Z+(N®V)= = 1

N®V= I N = 0 N = 1

BD AD

39 3F 3B 3E

в область памяти с адресалш от 0200 до М-1. При этом старпшй байт адреса М за-шсывается в ячейку 0000, младший байт-в ячейку 0001.

Приведенная в табл. 21.8 программа начинается с загрузки 16-разрядного числа 0200; 6 в индексный регистр и очистки аккумулятора. Затем начинается цикл, в котором содержимое аккумулятора А записывается в память путем применения

адресации с индексированием. После этого содержимое аккумулятора А и индексного регистра увеличивается на 1. Если полученный адрес оказывается меньше М, то программный счетчик возвращается к началу цикла. При этом следующее значение массива запишется в очередную ячейку и т.д. Если X = М, то возврата к началу цикла не происходит и программа останавливается по команде WAI.



Адрес команды в 16-ричном коде

Команда в Мнемоника 16-ричном коде

Комментарий

F800

F801 F802 F803 r F804

F805 F806 F807 F808 F809 F80A

F80B F80e

02 00 4F А7

00 4С

08 9С 00 26

F8 ЗЕ

LDX (imm.) 0200

CLR А

STA А (inx.) Начало чикла

INC А INX

СРХ (dir.) 00 BNE (rel.) Возврат,

когда X < М

Подпрограммы

Переход к подпрограмме (BSR, JSR) является безусловным переходом, характеризующимся следующим дополнительным свойством: адрес следующей команды запоминается в специальном регистре в качестве адреса возврата из подпрограммы. Благодаря этому можно осуществлять переходы из различных мест основной программы к часто используемым стандартным подпрограммам. С помощью команды (Return from Subroutine) происходит запись адреса возврата в программный счетчик.

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

и т. д. Для организации этого процесса служит специальный 16-разрядный регистр ЦПЭ, который называется указателем стека.

Для запоминания адресов возврата выделяют специальную область ОЗУ, которая для других целей не используется. Она называется стеком (Stack). Объем стека выбирают в зависимости от числа возможных вложений подпрограмм. После подключения микропроцессора верхний адрес этой области загружают в указатель стека ЦПЭ с помощью указанной в табл. 21.9 команды LDS.

Если теперь с помощью команд BSR или JSR осуществить переход к подпрограмме, то код адреса возврата (младший байт) будет автоматически записан в ячейку, адрес которой содержится в указателе стека. Затем содержимое указателя стека уменьшится на единицу и в заданную ячейку будет записан старший байт кода адреса возврата. После этого содержимое указателя стека снова уменьшится на единицу и при этом укажет адрес следующей свободной ячейки области ОЗУ, отведенной под стек.

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

С помощью команды RTS (Return from Subroutine) последний адрес возврата переписывается из стека в программный счетчик, и содержимое указателя стека увеличивается на два. Таким образом, адреса возврата обрабатываются, как это и требуется, в порядке, обратном их поступлению. Стек можно использовать для промежуточного запоминания содержимого аккумулятора. Для этого служат команды PSH А и PSH В с неявной адресацией, которые осуществляют запоминание содержимого регистров А и В в той ячейке, адрес которой задает указатель стека. После этого содержимое стека уменьшается на единицу, так как длина слова данных

Программа загрузки памяти начиная с адреса 0200 числовым рядом О, 1, 2,...



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 [ 124 ] 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168



ООО «Мягкий Дом» - это Отечественный производитель мебели. Наша профильная продукция - это диваны еврокнижка. Каждый диван можем изготовить в соответствии с Вашими пожеланияи (размер, ткань и материал). Осуществляем бесплатную доставку и сборку.



Звоните! Ежедневно!
 (926)274-88-54 
Продажа и изготовление мебели.


Копирование контента сайта запрещено.
Авторские права защищаются адвокатской коллегией г. Москвы
.