![]() |
Звоните! (926)274-88-54 Бесплатная доставка. Бесплатная сборка. |
Ассортимент тканей График работы: Ежедневно. С 8-00 до 20-00. Почта: soft_hous@mail.ru |
![]() ![]() ![]() |
Читальный зал --> Полупроводниковая схемотехнология описаны в разд. 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,...
ООО «Мягкий Дом» - это Отечественный производитель мебели. Наша профильная продукция - это диваны еврокнижка. Каждый диван можем изготовить в соответствии с Вашими пожеланияи (размер, ткань и материал). Осуществляем бесплатную доставку и сборку. Звоните! Ежедневно! (926)274-88-54 Продажа и изготовление мебели. Копирование контента сайта запрещено. Авторские права защищаются адвокатской коллегией г. Москвы. |