Uploaded by Анастасия Кияшко

Инструкционная карта (2)

advertisement
Программа
Лампанель
Тема: Вывод данных
Программа-тренажёр «ЛамПанель» – это учебная модель компьютера, который
управляет панелью лампочек. Тренажёр можно использовать:
•для изучения принципов работы компьютера (процессор, ОЗУ, ПЗУ);
•для начального изучения программирования на языке ассемблера;
•для изучения операций с целыми числами, в том числа поразрядных логических
операций и сдвигов
Модель компьютера включает процессор, оперативную память (ОЗУ), постоянную память (ПЗУ) и устройство вывода – панель лампочек размером 8×16. Для
демонстрации через проектор можно вывести увеличенную панель, нажав клавишу F10.
Программа для такого процессора составляется на языке ассемблера, в котором
каждая символьная команда соответствует одной (числовой) команде процессора.
Программа набирается в окне «Программа». Программу можно сохранять в виде
файла на диске, а потом загружать в память из файла (с помощью меню «Файл»).
При запуске (по клавише F9) набранная программа транслируется (переводится в
машинные коды, которые появляются в окне «Отладчик») и начинается ее выполнение.
Процессор имеет 4 регистра общего назначения (РОН), которые называются
R0, R1, R2 и R3. Кроме того, есть еще три внутренних регистра, недоступные программисту (но видимые в окне программы):
 PC (англ. program counter) – программный счетчик, счётчик команд, указывающий на следующую выполняемую команду;
 SP (англ. stack pointer) – указатель стека, адрес вершины стека; стек размещается в нижней части оперативной памяти, его содержимое можно просмотреть
в нижней части окна «Данные в памяти»;
 PS (англ. processor state) – регистр состояния процессора; используются
только три младших бита: 0 – бит N (англ. negative, отрицательный результат),
1 – бит Z (англ. zero, нулевой результат) и 2 – бит C (англ. carry, перенос).
В качестве устройства вывода используется панель лампочек размером 8×16.
Каждый ряд лампочек управляется через отдельный порт вывода. Всего используется восемь 16-разрядных портов с именами P0, P1, P2, P3, P4, P5, P6 и P7.
Постоянное запоминающее устройство (ПЗУ) предназначено для хранения
системных подпрограмм. Код ПЗУ загружается при старте программы из текстового
файла, поэтому пользователь может изменять содержимое ПЗУ: добавлять, удалять и изменять любые процедуры.
Отладка
Программу можно выполнить всю целиком (клавиша F9) или в пошаговом
режиме (F8). В пошаговом режиме в окне отладчика зелёным цветом выделяется
текущая строка, которая будет выполнена при следующем нажатии F8. Сочетание
клавиш Ctrl+F8 позволяет отменить только что сделанную команду.
Клавиша F7 (вместо F8) позволяет войти в подпрограмму и выполнить ее пошагово.
Если установить курсор в какую-то строчку программы и нажать клавишу F4,
программа будет выполняться до этой строчки и затем остановится.
Движок «Скорость» изменяет скорость выполнения программы.
Все команды отладки включены в меню «Программа». Кроме того, они могут
выполняться с помощью кнопок панели инструментов:
Трансляция в машинные коды без выполнения (Ctrl+F9).
Трансляция и выполнение (F9).
Выполнить один шаг (F8).
Отменить один шаг (Ctrl+F8).
Войти в подпрограмму (F7).
Выполнить до курсора (F4).
С помощью меню «Регистры» можно изменить значения любого регистра во
время выполнения программы в пошаговом режиме.
Вывод
данных
Обмен данными процессора и внешнего устройства происходит через порты — регистры
контроллера панели. У ламповой панели 8 портов, которые называются P0, P1, P2, P3,
P4, P5, P6 и P7
Каждый порт “отвечает” за одну строку лампочек; например, для того чтобы “зажечь”
всю верхнюю строку, нужно записать в порт P0 код FFFF16 (все 16 бит — единичные, все
лампочки горят). Для этого можно использовать, например, команды
MOV FFFF,
R0 OUT R0, P0 ; запись значения R0 в порт P0
К сожалению, записать число сразу в порт нельзя — сначала нужно записать его в регистр общего назначения (в данном примере — в R0), а потом — из регистра в порт.
Для того чтобы изменить второй сверху ряд лампочек, нужно записать новое значение в
P1 и т.д.; последний ряд управляется портом P7. Например, для того чтобы все ряды
лампочек горели одинаково, можно сначала записать нужный код в регистр:
MOV AAAA, R0
а затем из этого регистра — во все порты:
OUT R0, P0
OUT R0, P1
…
OUT R0, P7
Здесь многоточие обозначает аналогичные команды записи содержимого регистра R0 в
порты P2…P6. Однако вместо последней серии из восьми команд можно использовать
всего одну:
SYSTEM 2
Эта команда вызывает системную подпрограмму с номером 2, находящуюся в постоянном запоминающем устройстве (ПЗУ) компьютера.
Так же, как и у реального компьютера, ПЗУ — это неизменяемая область памяти, то есть
после запуска компьютера ЛамПанель изменить содержимое ПЗУ нельзя.
Для того чтобы увидеть все подпрограммы, которые записаны в ПЗУ, нужно щелкнуть по
кнопке
или выбрать пункт верхнего меню Программа — Просмотр ПЗУ. После этого
появляется окно, в левой части которого перечислены все системные подпрограммы (с
их номерами), а в правой части показывается текст выбранной подпрограммы и ее машинные коды:
В этом списке есть много полезных подпрограмм для работы с ламповой панелью, в том
числе
0 — очистка экрана (погасить все лампочки);
1 — зажечь все лампочки на панели;
3–4 — прокрутка изображения вниз и вверх;
6–9 — логические операции;
A16–E16 — сдвиги битов;
1216 — вывод числа, записанного в регистр R0, в десятичной системе счисления;
1316 — вывод числа, записанного в регистр R0, в шестнадцатеричной системе счисления.
Обратите внимание, что номер системной подпрограммы задается в шестнадцатеричной
системе счисления.
Щелкнув мышкой на названии подпрограммы в левой части окна, мы увидим в правой
части ее содержимое и комментарии, объясняющие, в каких регистрах должны быть расположены параметры подпрограммы и как она возвращает значения результаты.
Практическая Задание 1
часть
1.Расписать, что обозначает каждая строка программы
2. Запустить на выполнение и сделать скрин результата
Задание 2
Использование оператора системных подпрограмм
1.Расписать, что обозначает каждая строка программы в окне подпрограммы ПЗУ
2. Запустить на выполнение и сделать скрин результата
3. Используя оператор системных подпрограмм очистить ламповую панель
4. Расписать, что обозначает каждая строка программы в подпрограммы ПЗУ
5. Запустить на выполнение и сделать скрин результата
Задание 3
1.Расписать, что обозначает каждая строка программы в окне Подпрограмма ПЗУ
2. Запустить на выполнение и сделать скрин результата
Задание 4
1.Расписать, что обозначает каждая строка программы в окне Подпрограммы
ПЗУ (10,11,12,13)
2. Запустить на выполнение и сделать скрин результата
3. Изменить значение строки mov 1, R1 на mov 0, R1
4. Запустить на выполнение и сделать скрин результата
5. Изменить значение строки mov 1, R1 на mov 0, R1
6. Запустить на выполнение и сделать скрин результата
7.Выполнить 11 подпрограмму
8.Запустить на выполнение и сделать скрин результата
9.Выполнить 12 подпрограмму
10.Запустить на выполнение и сделать скрин результата
11.Выполнить 13 подпрограмму
12.Запустить на выполнение и сделать скрин результата
Задание 5
Вывод картинки из оперативной памяти
1.Расписать, что обозначает каждая строка программы в окне Подпрограмма ПЗУ
2. Запустить на выполнение и сделать скрин результата
Cамостоятельное задание
Составьте программу, после выполнения которой ламповая панель выглядит так, двумя
способами:
Download