Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сгребнев Н.В., Осокина Е.Б., Перехода М.С. Микр...docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
7.6 Mб
Скачать

Контрольные вопросы

  1. Что такое микропроцессорная система, какова ее минимальная структура?

  2. Охарактеризуйте шины МП системы с 3-шинной организацией.

  3. Что такое третье состояние выходных буферов? Для чего оно необходимо? Как достигается?

  4. Что такое ОЗУ?

  5. Что такое ПЗУ?

  6. Что подразумевается под устройствами ввода-вывода?

  7. Каково назначение внешних буферов шин данных и адреса? Как работает двунаправленный буфер?

  8. Перечислите внутренние регистры МП К580ВМ80, каково назначение каждого из них?

  9. Что такое АЛУ? Каковы его функции?

  10. Как осуществляется передача данных из МП в ОЗУ и обратно?

Лабораторная работа №1 Программирование арифметических операций в 8-разрядных микропроцессорах

Целью данной лабораторной работы является изучение языка Ассемблера 8-разрядного микропроцессора посредством выполнения программ сложения, вычитания, умножения и деления.

Необходимые теоретические сведения

Набор команд делится на группы команд арифметических, логических, команд передачи данных, ввода-вывода, команд переходов. Для наименования каждой двоичной команды языки ассемблера используют сокращенное написание английских слов (мнемоническое обозначение). Команда состоит из двух частей: кода операции (КОП) и операнда. Код операции сообщает микропроцессору, что делать, операнд указывает над чем производить действия. Команды имеют длину от 1 до 3 байтов. Код операции всегда занимает первый байт любой команды. Длина команды зависит от способа адресации. Способом адресации принято называть тип обращения (адресацию) к данным. В МП I8080 используются четыре способа адресации.

I. Прямая адресация (трехбайтовая): первый байт – КОП, второй и третий байты – адрес, по которому в памяти находятся данные.

II. Непосредственная адресация (двух или трехбайтовая): первый байт – КОП, второй и третий байты – данные.

III. Регистровая адресация (однобайтовая): КОП подразумевает перемещение данных между какими-либо регистрами общего назначения внутри микропроцессора.

IV. Косвенная адресация (однобайтовая): КОП содержит обозначение старшого байта адресной пары регистров общего назначения [ВС, DE, HL]. По адресу, содержащемуся в этой адресной паре регистров, в памяти находятся (или помешаются туда) нужные данные.

В списке команд найдите примеры каждому способу адресации.

Программа на языке ассемблера состоит из следующих полей:

  • Адрес – конкретизированное место расположения команды в памяти, т.е. номер ячейки памяти. Это поле присутствует после назначения месторасположения программы в памяти.

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

  • Мнемонические обозначения операций с операндами. Мнемоники – это сокращения полного английского наименования выполняемого действия. Например: MOV - move – переместить, JMP - jump – перейти.

  • Коды операции с операндами – соответствующие конкретным мнемоникам элементы объектного кода, определяющие действие и то, над чем оно производится. В исходном тексте программы это поле отсутствует и появляется после трансляции текста программы в объектный код.

  • Комментарии – краткие, произвольные, текстовые или символьные пояснения логической организации прикладной программы. Как правило, поле комментария начинается с точки с запятой (;).

Чтобы понимать предложенные программы, нужно знать правила двоичной арифметики.

Двоичное сложение выполняется, исходя из следующих правил: 0+0=0; 0+1=1; 1+1=10; 1+1+1=11, т.е.

Для отображения чисел со знаком, как правило, используется дополнительный код. Под знак отводится старший разряд числа, для отрицательных чисел в знаковом разряде «1», для положительных «0». Для положительных чисел дополнительный код совпадает с двоичным кодом и преобразование не требуется.

Для отрицательных чисел, т.е. для преобразования -D → дополнительный код, требуется поэтапное преобразование.

Например, для преобразования (- 17):

  1. Отрицательное число записывается по модулю в двоичном коде с учетом дополнительного «знакового» разряда перед старшей «значащей» единицей: │-17│= 010001

  2. Производится инверсия,

т.е. получение обратного кода: 101110

  1. Выполняется инкремент,

т.е. наращивание на 1: 101111

Обратное преобразование с целью выявить модуль исходного числа

дополнительный код →│- D│ требует следующих этапов:

  1. Исходное число, представленное в дополнительном коде,

например: 101101

Инвертируется: 010010

  1. Выполняется Инкремент: 010101 = │-21│

На основании полученного результата можно сделать вывод, что исходное число 101101 = -21.

Микропроцессор способен суммировать, получать обратный код, наращивать на 1. Операция вычитания в микропроцессоре производится как сложение в дополнительном коде.

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

Н апример:

Двоичное умножение заменяется многократным сложением. Стандартная процедура сводится к анализу очередного разряда множителя, начиная с младших, и в случае «1», множимое добавляется к частичной сумме с последующим сдвигом, в случае «0» сразу выполняется сдвиг влево на один разряд.

Например: 13х9:

Если двоичное умножение сводится к сложению и сдвигу, то двоичное деление сводится к вычитанию и сдвигу. Вычитание выполняется с использованием дополнительного кода, т.е. деление сводится к сложению делимого с дополнительным кодом делителя и сдвигу по состоянию знакового бита. Из инверсии знаковых битов промежуточных результатов формируется частное. Например, при делении 40 на 8, число 40 представляется в двоичном коде с добавлением знакового бита 0101000, число 8 представляется в дополнительном коде 11000. Как при любом делении делитель в делимом укладывают, начиная со старших разрядов. Единица, перенесенная за пределы установленных размеров делимого, теряется.

В частное в старший разряд идет 1 (инвертированный знаковый разряд), полученный результат сдвигается влево на один разряд:

В частное в следующий разряд идет 0, а сдвигается на один разряд влево предыдущий результат:

В частное в младший разряд идет 1 и деление заканчивается, поскольку закончен сдвиг. В результате получилось 101.

Выполняя заданные программы, нужно представлять себе структуру МП К580ВМ80 и ЭВМ на его основе. Необходимо пользоваться системой команд этого МП (Приложение 1), где есть пояснения к каждой команде. Если в мнемонике команды упоминается местонахождение только одного операнда, то второй, по умолчанию, будет в аккумуляторе. Туда же, в регистр А, попадает и результат операции.