Методические указания для практических занятий по дисциплине мдк. 02. 01
Скачать 7.37 Mb.
|
Практическая часть 69 Прогр. 2.1. Программа по выполнению арифметических и логических операций с одним операндом. LHLD 0100h ;В HL адрес ячейки памяти (начало массива). MVI B, 1Eh ;Записать число в регистр B (исходное число). MOV A, B ; Записать исходное число в Акк. CMA ;1. Инверсия Акк. CALL PROC_1 ; Переход на подпрограмму PROC_1. INR A ;2. Инкрементация Акк. CALL PROC_1 ; Переход на подпрограмму PROC_1. DCR A ;3. Декрементация Акк. CALL PROC_1 ; Переход на подпрограмму PROC_1. ADD A ;4. Умножить Акк. на 2 CALL PROC_1 ; Переход на подпрограмму PROC_1. ANA A ;5. Выполнить над Акк. операцию лог. И. CALL PROC_1 ; Переход на подпрограмму PROC_1. ORA A ;6. Выполнить над Акк. операцию лог. ИЛИ. CALL PROC_1 ; Переход на подпрограмму PROC_1. CMP A ;7. Сравнить Акк с самим собой. CALL PROC_1 ; Переход на подпрограмму PROC_1. DAA ;8. Выполнить десятичную коррекцию над Акк. CALL PROC_1 ; Переход на подпрограмму PROC_1. HLT ;Завершение программы. P ROC_ 1: MOV M, A ; Записать содержимое Акк в ячейку по ; адресу из HL. INX H ; Инкрементация регистровой пары HL. MOV A, B ; Записать исходное число в Акк. RET ;Возврат из подпрограммы. Табл. 2.2. Результаты выполнения программы Прогр. 2.1. № A C MA I NR D CR A DD A NA O RA C MP D AA 1 1 Eh E 1h 1 Fh 1 Dh 3 Ch 1 Eh 1 Eh 1 Eh 3 0 2 Задание 2.2. Исследование программы по выполнению арифметических и логических операций с двумя операндами (один из операндов – аккумулятор). Порядок выполнения задания: 1. Ввести программу Прогр. 2.2, исправить ошибки, осуществить пуск. 2. Исследовать процесс выполнения программы в пошаговом режиме (обратить особое внимание на изменения регистра флагов). 3. Заменяя в третьей строке программы число, записываемое в регистр C, 70 исследовать программу при различном значении этого числа. 4. Занести результаты выполнения программы в таблицуТабл. 2.3 (на стр. 39), числа в таблицу заносить в 16-ричной системе счисления). Прогр. 2.2. Программа по выполнению арифметических и логических операций с двумя операндами. LHLD 0100h ;В HL адрес ячейки памяти (начало массива). MVI B, 7Ch ;Записать число в регистр B (первый ; операнд). MVI C, 1Eh ;Записать число в регистр C (второй ; операнд). MOV A, B ; Записать 1-й операнд в Акк. ADD C ;1. Сложение операндов. CALL PROC_1 ; Переход на подпрограмму PROC_1. SUB C ;2. Вычитание 2-го операнда из 1-го. CALL PROC_1 ; Переход на подпрограмму PROC_1. ANA C ;3. Выполнение над операндами операции ; лог. И. CALL PROC_1 ; Переход на подпрограмму PROC_1. ORA C ;4. Выполнение над операндами операции ; лог. ИЛИ. CALL PROC_1 ; Переход на подпрограмму PROC_1. XRA C ;5. Выполнение над операндами операции ; лог.исключающего ИЛИ. CALL PROC_1 ; Переход на подпрограмму PROC_1. CMP C ;6. Сравнение операндов. CALL PROC_1 ; Переход на подпрограмму PROC_1. HLT ;Завершение программы. P ROC_ 1: MOV M, A ; Записать результат (Акк) в ячейку по ; адресу из HL. INX H ; Инкрементация регистровой пары HL. MOV A, B ; Записать исходное число в Акк. RET ;Возврат из подпрограммы. Табл. 2.3. Результаты выполнения программы Прогр. 2.2. № B C A DD S UB A NA O RA X RA C MP 1 7 Ch 1 Eh 9 Ah 5 Eh 1 Ch 7 Eh 6 2 7 C 2 7 Ch 7 Ch 71 Задание 2.3. Исследование программы сравнения двух чисел из памяти и записи большего из них обратно в память. Порядок выполнения задания: 1. Ввести программу, разработанную при выполнении п. 5 задания для самоподготовки (см. выше, стр. 37). 2. Осуществить пуск программы и проверить результат сравнения следующих чисел: 33h и 2Eh, D8h и 25h, 98h и A5h. Контрольные вопросы. 1. Какие бывают команды пересылки, арифметические команды, логические команды, команды передачи управления, специальные команды? 2. Как работают команды CMP, CPI? Практическая работа №12. Изучение работы ОЗУ (тестирование и отладка). Цель работы: изучить работу УОУ «Электроника-580»; п еревести тест-программу проверки ОЗУ с машинного языка на Ассемблер, используя таблицу кодировки команд. Теоретические сведения. Описание учебно-отладочного устройства «Электроника - 580» Центральным элементом УОУ является однокристальный микропроцессор КР580ИК80А, обеспечивающий обработку информации и управление всеми остальными узлами УОУ. Взаимодействие всех модулей УОУ осуществляется по трехшинной схеме, состоящей из 16-разрядной шины адреса, 8-разрядной двунаправленной шины данных и десяти линий шины управления. Непосредственно к шине данных подключен только регистр слова состояния РСС, фиксирующий в начале каждого машинного цикла информацию о микропроцессоре. В произвольный момент времени с МП взаимодействует только один из модулей, выбор которого осуществляется встроенным двухступенчатым дешифратором адреса, собранным на микросхемах К155ИД3 и К155ИД4. Он обрабатывает только 6 старших разрядов шины адреса. Режим работы модулей (запись или чтение) ПЗУ, ОЗУ и ППИ определяется управляющими сигналами, поступающими с выхода ФУС. Эти сигналы формируются на основе информации о состоянии МП, которая фиксируется в РСС, а также с непосредственным использованием некоторых выходов МП. Кроме сигналов записи и чтения ФУС формирует следующие сигналы: строб слова состояния; команда сброса МП RESET; запрос прерывания INT. Для осуществления диалога пользователя с УОУ предусмотрены клавиатура и цифровой дисплей. Клавиатура содержит 25 клавиш. С помощью клавиши RST формируется сигнал сброса МП, опрос остальных производится с помощью ППИ типа КР480ИК55. Верхний и правый ряды клавиш содержат 9 командных клавиш, остальные 16 клавиш служат для ввода в УОУ шестнадцатиричных цифр. Цифровой дисплей служит для вывода информации в шестнадцатиричном коде о состоянии различных узлов УОУ и выполнен на восьми светодиодных семисегменных индикаторах. Дисплей управляется индикаторным узлом прямого доступа к памяти ПДП, который осуществляет выборку информации для дисплея из 3 ячеек ОЗУ и передачу ее на индикацию. Значительную часть лицевой панели занимает таблица кодировки команд УОУ, позволяющая поставить в соответствие мнемоническому изображению команд ее двухразрядный 72 шестнадцатиричный код (Н-код). Кроме того, выделено поле «Операции аккумулятора», в котором расшифровано значение некоторых команд. На индикаторы АДРЕС, РЕГИСТР и ДАННЫЕ информация выводится с стилизованном виде. На лицевую панель выведена также индикация состояния флажков нуля и переноса МП при помощи светодиодов Z и С соответственно. Клавиатура. Клавиатура состоит из 9 командных клавиш и 16 клавиш данных. Назначение командных клавиш указано в таблице 1. Клавиши данных могут вводить в УОУ как цифровую, так и буквенную информацию. В последнем случае клавиши данных используются для задания имен регистров и регистровых пар МП: клавиши A, B, C, D, E, 8/H, 9/L и F – для обозначения аккумулятора А, регистров B – L и регистра признака F соответственно; клавиша I/P для обозначения указателя стека SP; клавиша 2/Т для обозначения содержимого вершины стека. Таблица 1. Обозна- чение Название Назначение клавиши RST Сброс Служит для формирования сигнала сброса УОУ. ADDR Адрес Служит для перевода УОУ в режим задания адреса ячейки памяти. MEM Память Служит для перевода УОУ в режим записи данных в ячейку памяти. NEXT Следующий Служит для увеличения на единицу адреса индицируемой ячейки памяти или регистра МП. CLR Восстанов- ление Служит для восстановления начального значения адреса или данных, если после их ввода не нажимались другие командные клавиши. При этом, если индицируется содержимое ячейки памяти и ранее была нажата клавиша МЕМ, то восстанавливается предыдущее значение данных. Если индицируется содержимое ячейки памяти, но клавиша МЕМ не была нажата, то клавиша CLR выведет на дисплей содержимое счетчика команд пользователя. При вводе адреса с клавиатуры клавиша CLR выводит на дисплей содержимое счетчика команд пользователя и не запрещает ввод нового адреса (можно не нажимать повторно клавишу ADDR). Нажатие на клавишу МЕМ восстановит предыдущий адрес ячейки памяти (но не выведет его на дисплей). Если высвечивается содержимое регистра МП, клавиша CLR вызовет отображение предыдущего содержимого регистра и его символа. При этом разрешено изменение содержимого регистра. REG Регистр Предназначена для чтения и записи содержимого восьмиразрядного регистра МП. При нажатии на клавишу REG на дисплее появится текущий адрес команд пользователя (АДРЕС), символ регистра (РЕГИСТР) и содержимое выбранного регистра МП (ДАННЫЕ). Текущее значение регистра индицируется при выполнении шагов программы. Возврат к индикации содержимого произойдет, если нажать клавишу МЕМ. При этом символ регистра на дисплее будет стерт. Наименование регистра хранится в ячейке памяти PGNAM после использования клавиш NEXT все время, пока индицируется содержимое регистра. 73 STEP Шаг Предназначена для выполнения программы в пошаговом режиме, когда УОУ находится в состоянии «Отладка» и происходит останов после выполнения каждой команды. При нажатии STEP в ячейку памяти SFLAG записывается единица, что означает, что при следующем вызове дисплея будут разблокированы дисплей и клавиатура. Если перед клавишей STEP нажать клавишу ADDR и четыре цифровые клавиши, то в счетчик команд пользователя введется новый адрес и программа пользователя будет выполняться с этого адреса. RUN Прогон Предназначена для выполнения программы в непрерывном режиме. При этом, для того, чтобы после выполнения программы произошло прерывание и обращение к монитору, необходимо в качестве команды останова программы использовать команду RST4, а не команду HLT. BRK Контро льная точка Служит для задания адресов контрольных точек в программе с целью автоматического останова программы по заданному адресу после выполнения какой-либо команды, что позволяет проверить промежуточные результаты. Командные клавиши инициируют выполнение отдельных модулей программы монитора, что приводит к выполнению соответствующей команды монитора. Командная клавиша RST служит для установки УОУ в исходное состояние. При нажатии на клавишу RST на индикаторах АДРЕС появится значение 8200, на индикаторах РЕГИСТР – пробел, а на индикаторах ДАННЫЕ – случайная информация. Командная клавиша ADDR вызывает счетчик команд пользователя и отображает его содержимое на четырех левых индикаторах АДРЕС, т.е. этой клавишей определяется адрес ячейки памяти. Если за клавишей ADDR последовательно нажимаются четыре цифровые клавиши, то индицируемый адрес заменяется новым. При этом на двух правых индикаторах ДАННЫЕ появится содержимое адресуемой ячейки памяти. нажатие клавиши NEXT выведет на индикатор информацию об адресе и значении следующей ячейки памяти. Командная клавиша МЕМ инициирует адрес ячейки памяти, содержимое которой можно изменить при помощи цифровых клавиш. Нажатие этой клавиши фиксируется появлением точки шестого слева индикатора дисплея, что указывает на то, что ввод в память разрешен. Если эта точка не светится, то данные вводиться не будут. При последовательном нажатии шести клавиш ADDR KKKK MEM где К – символ цифровой клавиши, на индикаторах АДРЕС высветится адрес ячейки памяти КККК, а на индикаторах ДАННЫЕ - содержимое этой ячейки. При этом загорится соответствующая точка, что позволяет осуществить ввод новых данных в заданную ячейку памяти нажатием одной или двух шестнадцатиричных клавиш. Для перехода к адресу следующей по порядку ячейки памяти нужно нажать клавишу NEXT, при этом нет необходимости нажимать клавишу МЕМ еще раз. Повторные нажатия клавиши МЕМ будут уменьшать на единицу адрес ячейки памяти. При последовательном нажатии трех клавиш ADDR P MEM в разрядах дисплея РЕГИСТР отобразится имя регистровой пары, а в разрядах АДРЕС – ее содержимое. В разрядах данные отобразится содержимое ячейки памяти, адресуемое регистровой парой. Эти данные могут быть заменены другими, путем ввода с цифровых клавиш. 74 Адрес, указываемый регистровой парой, можно увеличить или уменьшить на единицу клавишами NEXT или МЕМ, при этом символ регистровой пары на дисплее замещается пробелами. Командная клавиша NEXT служит для перехода к следующему адресу. Этим адресом моет быть адрес ячейки памяти, адрес контрольной точки, а также символ восьмиразрядного регистра в такой последовательности: A, B, C, D, E, F, H, L, A, B, C, … . Командная клавиша CLR при нажатии восстанавливает значения адреса или данных. При этом, если индицируется содержимое ячейки памяти и ранее была нажата клавиша МЕМ, то восстанавливается предыдущее значение данных. Если индицируется содержимое ячейки памяти, но клавиша МЕМ не была нажата, клавиша CLR выведет на дисплей содержимое счетчика команд пользователя. Изменения в адресуемой им ячейке памяти возможны после нажатия клавиши МЕМ. При вводе адреса с клавиатуры клавиша CLR выводит на дисплей содержимое счетчик а команд пользователя и не запрещает ввод нового адреса. Нажатие на клавишу МЕМ восстановит предыдущий адрес ячейки памяти (но не выведет его на дисплей). Если высвечивается содержимое регистра МП, клавиша CLR вызовет отображение предыдущего содер содержимого регистра и его символа. Командная клавиша REG предназначена для чтения и записи содержимого восьмиразрядного регистра МП. При нажатии на клавиш REG на дисплее появится текущий адрес команд пользователя (АДРЕС), символ регистра (РЕГИСТР) и содержимое выбранного регистра МП (ДАННЫЕ). Для ввода новых данных в регистр необходимо последовательно нажать клавиши: REG R KK, где R – символ восьмиразрядного регистра, а КК – символическое обозначение двух последовательно нажимаемых клавиш данных. Командная клавиша STEP предназначена для выполнения программы в пошаговом режиме, когда УОУ находится в состоянии «Отладка» и происходит останов после выполнения каждой команды. При нажатии клавиши STEP в ячейку памяти SFLAG записывается единица, что означает, что при следующем вызове дисплея будут разблокированы дисплей и клавиатура. содержимое пользователя во всех регистрах МП восстанавливается, система прерываний разблокируется и управление передается программе пользователя с адреса, записанного в ячейке памяти. При этом после выполнения очередной команды вызывается программа монитора. Если перед клавишей STEP нажать клавишу ADDR и четыре цифровые клавиши, то в счетчик команд пользователя введется новый адрес и программа пользователя будет выполняться с этого адреса. Командная клавиша RUN предназначена для выполнения программы в непрерывном режиме, когда УОУ находится в состоянии «Прогон». При этом, для того, чтобы после выполнения программы произошло прерывание и обращение к монитору, который включает индикатор, необходимо в качестве команды останова програ программы использовать команду RST4, а не команду HLT. Для запуска программы в непрерывном режиме необходимо последовательно нажать клавиши ADDR KKKK RUN, где КККК – начальный адрес программы. Если УОУ установлено в состояние «Отладка», то указанная последовательность нажатия клавиш приведет к выполнению программы с остановом по заранее заданным контрольным точкам (адресам). Командная клавиша BRK служит для задания адресов контрольных точек в программе с целью автоматического останова программы по заданному адресу после выполнения какой-либо команды. Ввод контрольной точки производится в режиме «Отладка» последовательным нажатием клавиш: 75 ADDR KKKK BRK NN, где КККК – адрес контрольной точки, NN – число проходов контрольной точки (наибольшее число проходов контрольной точки равно 256). Помимо указанного способа контроля, когда останов производится по адресу заданной команды, система контрольных точек позволяет остановить программу после выполнения заданного числа команд. Для этого необходимо в ячейку памяти с адресом 83Е6 записать число команд КК, которое надо выполнить, для чего необходимо нажать следующие клавиши: ADDR 83E6 BRK KK, где КК – число команд. Ячейка памяти 83Е6 рассматривается как счетчик команд и имеет символическое обозначение PCADDR. Так как его содержимое меняется при выполнении каждой команды, останов произойдет после выполнения установленного в счетчике числа проходов. Составление и запись программ. При написании программ для УОУ «Электроника-580» нужно вручную переводить язык Ассемблер на машинный язык. Затем машинный код с клавиатуры вводится в заданную область памяти УОУ и производится отладка программы. Для перевода программы, записанной с использованием мнемоники языка Ассемблер, на машинный язык следует использовать таблицу 2. Эта таблица, составленная в матричном виде, содержит в качестве элементов матрицы мнемонические обозначения команд УОУ. При использовании таблицы для определения кода команды необходимо найти в нем мнемоническое изображение команды УОУ. Это изображение находится на пересечении столбца и строки, которые определяют соответственно старший и младший разряды машинного кода. Например, изображение команды LDA находится на пересечении столбца 3 и строки А; следовательно, машинный код команды LDA имеет вид 3А, а для команды загрузки аккумулятора MVI машинный код равен 3Е. |