Главная » Просмотр файлов » ЦУиМП Лек2 5курс

ЦУиМП Лек2 5курс (1086960), страница 10

Файл №1086960 ЦУиМП Лек2 5курс (Архив, содержащий лекции) 10 страницаЦУиМП Лек2 5курс (1086960) страница 102018-01-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 10)

Как уже отмечалось, существует ряд команд, в которых значение операнда (константы) указывается непосредственно в команде. Для таких команд другие методы адресации использоваться не могут.

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

6.3.4. Кодирование команд условных и безусловных переходов

20

Команды условных и безусловных переходов кодируются в памяти программ 2-мя 16 разрядными словами. При этом первое слово команды является КОП, в 12 младших разрядах второго слова указывается адрес команды, к которой осуществляется переход. Старшие 4 разряда второго слова команды устанавливаются в 0 (рис.6.3).

Рассмотрим пример кодирования команды безусловного перехода в START. В -мнемоника команды безусловного перехода, START - метка команды, к которой осуществляется переход. Сама команда занимает 2-е ячейки ПЗУ программ с адресами 0 и 1. Команда с меткой START находится в ПЗУ программ по адресу 4. Это стандартное начало выполнения программы. Дело в том, что как указывалось ранее, при возникновении прерывания, в программный счетчик принудительно записывается константа 002, а программист по этому адресу помещает команду безусловного перехода на программу обработки прерывания. Т.е. первая команда программы должна обходить ячейки с адресами 2 и 3, что и делает команда В START.

6.3.5. Общие замечания к двоичному представлению команд

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

Понимание того, как кодируются команды в двоичные коды, дает общее представление о работе транслятора.

ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ

  1. Пользуясь приложением 2 представить в двоичном и шестнадцетиричном виде
    следующие команды с прямой адресацией: a) LAC 50,11; б) SACL 15; в) LST 119; г)
    SUB 71,7.

  2. Пользуясь приложением 2 представить в двоичном и шестнадцетиричном виде
    следующие команды с косвенной адресацией: a) SACH *+,4,ARO; б) ZALH *-,ARl;
    B)ADD*,8,ARO;r)XOR*.

  3. Пользуясь приложением 2 представить в двоичном и шестнадцетиричном виде
    следующие команды с непосредственной адресацией: a) LARP 1; б) LDPK 0; в)
    MPYK -1000; г) LARK ARO,200.

21

4. Пользуясь приложением 2 представить в двоичном и шестнадцетиричном виде следующие команды условных переходов: a) BGEZ Ml M1-550; б) BV M2 М2-

2047.

6.4. Система команд микропроцессора

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

6.4.1. Команды АЛУ и аккумулятора

Команды АЛУ и аккумулятора в свою очередь могут быть разделены на подгруппы.

Подгруппа команд, взаимодействующих только с аккумулятором и с записью результата

вновь в аккумулятор.

Команда обнуления аккумулятора - ZAC (Zero in Accumulator). При выполнении этой

команды в аккумулятор записывается 0.

Команда вычисления абсолютного значения содержимого аккумулятора - ABS (ABSolute)

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

аккумулятор. Т.е. после выполнения этой команды в аккумуляторе всегда находится

положительное число. Подгруппа команд, выполняющих логические операции между

адресуемой ячейкой памяти и содержимым аккумулятора.

Любая логическая операция этой подгруппы выполняется над содержимым 16 младших

разрядов аккумулятора и числом из адресуемой ячейки памяти. При этом может

использоваться как прямая, так и косвенная адресация. Результат записывается вновь в

аккумулятор. Старшие разряды аккумулятора оперируют с нулевым 16-и разрядным

словом.

Команда логического умножения - AND. Результат побитового логического умножения

младших разрядов аккумулятора и адресуемой ячейки записывается в младшие разряды

аккумулятора. Старшие разряды аккумулятора обнуляются.

Пример.

AND 60 ; Содержимое 60-й ячейки памяти ;

; логически умножается на ; содержимое аккумулятора.

Команда логического сложения - OR. Результат побитового логического сложения младших разрядов аккумулятора и адресуемой ячейки записывается в младшие разряды аккумулятора. Старшие разряды аккумулятора не изменяются. Пример.

OR 121 ; Содержимое 121-й ячейки памяти

; логически складывается с ; содержимым аккумулятора.

Команда сложения по модулю 2 - XOR (exclusive OR). Результат побитового сложения по модулю 2 младших разрядов аккумулятора и адресуемой ячейки памяти записывается в младшие разряды аккумулятора. Старшие разряды аккумулятора не изменяются. Пример.

22

XOR110

Логические операции обычно используются для установки отдельных битов операнда в определенное значение. Так операция AND используется для обнуления отдельных битов, OR - для установки отдельных битов в единичное состояние, в XOR - для инверсии отдельных битов.

Подгруппа команд загрузки аккумулятора и арифметических операций с использованием регистра сдвигателя.

Операнд выбирается из ОЗУ данных и оперирует с содержимым аккумулятора. В командах данной подгруппы сдвиг может принимать значение от 0 до 15. Сдвиг равный

16 используется в подгруппе команд арифметических операций с двойной точностью. Допускается прямая и косвенная адресация. Команда загрузки аккумулятора LAC (Load in Accumulator). По этой команде операнд из ОЗУ данных проходит через с двигатель на 0-16 разрядов и записывается в аккумулятор. При этом в старших разрядах аккумулятора происходит копирование знака записываемого числа, а в младшие разряды записываются нули. Так например, если до выполнения команды LAC 100,2 в ячейке DAT 100 находилось число - 50 гаршая пожжина «кумуигоря мдавшая пшюеииа аккум^яящ» (QFFC7H в шестнадцатеричном коде), то после

йиср«ж 6,4 Выполнение команды УС выполнения команды в аккумуляторе будет

находиться число -200 (OFF38H в

шестнадцатеричном коде). Сдвиг на k разрядов соответствует умножению числа на 2 5k 0. На рис.6.4 показано, как выполняется команда LAC.

Команда сложения ADD (ADD - сложить). Эта команда выполняется по такому же принципу, как и команда LAC. Выбираемый из ОЗУ данных операнд сдвигается от 0 до 15 разрядов влево, младшие разряды при этом добавляются нулями, а в старших происходит размножение знака.

Полученное число прибавляется к содержимому аккумулятора, результат записывается вновь в аккумулятор. Принципиальное отличие команды ADD от команды LAC заключается в том, что в процессе выполнения команды ADD может возникнуть переполнение. Записываемый в аккумулятор результат в этом случае зависит от того установлен или нет режим фиксации переполнения. Если режим установлен, то в аккумулятор будет записано либо максимальное положительное число, либо минимальное отрицательное. При не установленном режиме фиксации переполнения происходит переполнение, а в триггер OV записывается 1. Пример.

ADD 40, 10

Команда вычитания SUB (SUBtract - вычитать). Из содержимого аккумулятора вычитается содержимое адресуемой ячейки памяти. Все остальное описание, относящееся к команде ADD, относится также и к команде SUB. Пример.

SUB 5,15

Подгруппа арифметических команд с двойной точностью.

23

Операнд выбирается из ОЗУ данных и оперирует с содержимым аккумулятора. Допускается прямая и косвенная адресация. Операнд либо сдвигается на 16 разрядов, т.е. оперирует со старшей половиной аккумулятора, либо вообще не сдвигается. В последнем случае, в отличие от команд LAC, ADD, SUB, размножения знака не происходит (старшие разряды дополняются нулями), т.е. операнд рассматривается как 16-ти разрядное положительное число без знака. К этой подгруппе относятся команды загрузки аккумулятора ZALH, ZALS, команды сложения ADDH, ADDS, команды вычитания SUBH, SUBS. Команды, оканчивающиеся на буку Н оперируют со старшей половиной аккумулятора, на букву S - с младшей половиной аккумулятора. На рис.6.5, 6.6 показан принцип выполнения таких команд.

Старшая полавина аккумулятора Младшая половина аккумрятора

Рисунок 6.6 Выполнение командZALH, ADDH, SUBH,

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

Подгруппа команд сохранения содержимого аккумулятора. В этих командах допускается прямая и косвенная адресация.

Команда сохранения старшей половины аккумулятора SACH (Save Accumulator High half). Старшая половина аккумулятора записывается в адресуемую ячейку памяти. При этом может быть осуществлен сдвиг на 0,1 или 4 разряда, т.е. в ОЗУ записываются 31-16 разряды аккумулятора при сдвиге 0, 30-15 разряды при сдвиге 1,27-12 разряды при сдвиге 4.

Команда сохранения младшей половины аккумулятора SACL (Save Accumulator Low half). В адресуемую ячейку заносятся младшие разряды аккумулятора. Примеры команд данной группы: SACH 90,4 SACH 33 ; Отсутствующий параметр сдвига соответствует

24

SACL 100; 0-му сдвигу.

Команда загрузки аккумулятора константой LACK (Load in Accumulator К). По данной

команде положительное 8-и разрядное число без знака загружается в младшие разряды

аккумулятора. Число находится в самой команде.

Примеры команды:

LACK 255

LACK OEFH.

Команда условного вычитания SUBC. Это специализированная команда, которая

позволяет определить 1 разряд частного при делении 2-х чисел. Допускаются прямой и

косвенный режимы адресации. Более подробно алгоритм выполнения команды и примеры

ее использования будут рассмотрены при описании программы деления.

6.4.2. Группа команд индексных регистров, указателя активного индексного
регистра ARP и указателя активной страницы памяти DP

Подгруппа команд загрузки индексных регистров, указателя активного индексного

регистра и указателя активной страницы памяти.

Команда загрузки индексного регистра из ОЗУ данных LAR (Load Asterisk Register). В

этой команде допускается прямая и косвенная адресация. Содержимое ячейки ОЗУ

записывается в индексный регистр.

Пример.

LAR 1,15 ; в первый индексный регистр загружается содержимое 15 ячейки памяти.

Команда загрузки индексного регистра константой LARK (Load Asterisk Register К).

Положительная 8-и разрядная константа загружается в младшие разряды индексного

регистра, старшие разряды индексного регистра обнуляются.

Пример.

LARK 1,255 ; в первый индексный регистр записывается константа 255.

Команда загрузки указателя активного индексного регистра одноразрядной константой

LARP (Load Asterisk Register Pointer). Одноразрядная константа, находящаяся

непосредственно в самой команде загружается в указатель активного индексного

регистра.

Пример.

Характеристики

Тип файла
Документ
Размер
730 Kb
Тип материала
Высшее учебное заведение

Список файлов лекций

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6532
Авторов
на СтудИзбе
301
Средний доход
с одного платного файла
Обучение Подробнее