Слайд 1GNU Эмулятор
компиляция программ
Интерфейс эмулятора.
Видео память.
Оперативная память.
Стек программы.
Слайд 2Запуск эмулятора
GNU эмулятор Neil Bauers Microprocessor Simulator ver 5.0.
1.
Используя проводник MS Windows найдите и откройте папку программы эмулятора.
2. Среди списка файлов программы найдите загрузочный файл программы, отмеченный пиктограммой и выполните его запуск.
Слайд 4Архитектура процессора
Программа эмулятора моделирует работу восьмиразрядного микропроцессора.
Микропроцессор содержит четыре
регистра общего назначения: AL, BL, CL, DL.
Регистр IP (Instruction Pointer)
для адресации команд.
Регистр SP (Stack Pointer) для работы со стеком и регистр состояния SR (Status Register).
Объем адресуемой оперативной памяти (RAM) равен 256 байтам.
Адресуется память путем последовательного занесения в нее байтов.
Слайд 5Ввод кода программы
Введите команды программы пересылки кодов в регистры общего
назначения
Для увеличения - уменьшения размеров шрифта используют кнопки
Слайд 6Команда процессора MOV
Общий синтаксис команды:
MOV A1,A2
Схема работы команды:
R
- Запись кода в регистр
R->[Addr] – Запись кода из регистра
в оперативную память по адресу Adrr
R<-[Addr] – Запись кода из ячейки оперативной памяти с адресом Addr в регистр.
Слайд 7Примеры использования команды
MOV AL,12; Запись в регистр кода 12
MOV [17],CL
;Запись в ячейку памяти с адресом 17
;содержания регистра CL
MOV
BL,[C3] ; Запись в регистр значения из ячейки
;с адресом C3
MOV [CL],DL ;Запись содержания регистра
;ячейку адрес которой хранится в регистре CL
MOV AL,[BL] ;Запись содержания ячейки по
;адресу, который хранится в регистре BL в регистр AL
Слайд 8Редактор кода
Команда END не является ассемблерной командой это команда эмулятора,
означающая конец программы.
Для ввода комментариев используется специальный символ
«;».
Коды при записи в регистр задаются в шестнадцатеричном формате!
Регистр символов кода и команд не имеет значения
Слайд 9Компиляция кода
После набора команд программы выполняется ассемблирование программы путем нажатия
кнопки «Assemblе» в верхней части окна
Слайд 10Сохранение программы
Выберите Вашу рабочую папку для размещения файла с программой
Имя файла программы (по умолчанию Untitled) замените на emureg и
нажмите кнопку «Сохранить».
Текст программы будет сохранен в файле emureg.ASM
Слайд 11Команды для работы с текстом программы
Для работы с фалами можно
использовать команды пункта меню File:
Open – Открыть файл.
Save – Сохранить
файл.
Save As – Сохранить файл под новым именем.
Слайд 12Адресное пространство программы
После сохранения программа будет скомпилирована в оперативную память
и будет готова к исполнению.
Слайд 13Программа в памяти
Наша программа занимает диапазон адресов 00 до 09.
Не забывайте, что значения шестнадцатеричные !
Слайд 14Исполнение программы
Для выполнения программы используем режим пошагового выполнения. Нажимайте последовательно
кнопку «Step» и следите как изменяются значения в регистрах процессора.
Слайд 15Выполнение программы
Обратите внимание, что значение регистров выводится в трех системах
исчисления двоичной, шестнадцатеричной и десятичной.
После достижения команды END нажмите
кнопку «STOP».
Слайд 16Перезапуск программы
В любом режиме исполнения программы для повторного ее исполнения
следует нажать кнопку «CPU Reset !».
Если окно отображения оперативной памяти
закрыто, его можно вывести, нажав кнопку «Show Ram».
Сброс оперативной памяти выполняется после нажатия кнопки «Assemble».
Слайд 17Скорость исполнения программы
Программу можно выполнить в автоматическом режиме используя кнопку
«Run». В автоматическом режиме исполнения можно использовать кнопки:
STOP – Приостановить
выполнение программы.
Continue – Продолжить выполнение.
Slower – уменьшить частоту процессора эмулятора, для замедления обработки команд.
Faster – увеличить частоту работы процессора.
Слайд 18Просмотр оперативной памяти
Содержание оперативной памяти можно выводить в одном из
трех режимов
Слайд 19Ячейки оперативной памяти
Hexdecimal – побайтовый просмотр в шестнадцатеричном формате.
ASCII –
просмотр содержания оперативной памяти в символьном виде.
Source – вывод программы
в оперативной памяти (используется по умолчанию).
Слайд 20Запись кодов в регистры и оперативную память
Упражнение № 1. Программа
change1.asm. Напишите программу для обмена значений регистров AL и CL,
используя оперативную память. Исходное значение кодов в регистрах AL=1F, CL=2F.
Псевдо код программы:
AL <= 1F
CL<= 2F
Адрес 52 <=AL
Адрес 53<= CL
Адрес 52 => CL
Адрес 53 => AL
КОНЕЦ
Слайд 21Виртуальный дисплей
В эмуляторе участок оперативной памяти в диапазоне адресов от
C0 до FF представляет собой видеопамять.
Если в ячейку занести
ASCII код символа, то автоматически открывается устройство VDU (Visual Display Unit) которое отображает содержание видеопамяти в виде символов.
Слайд 24Вывод сообщения
Следует иметь в виду, что оперативная память обновляется только
после повторного ассемблирования программы, кнопка «Assemble» !
Упражнение № 2. Программа
hello.asm Напишите программу для вывода на устройство VDU контрольного сообщения Hello World!.
Слайд 25Запись кодов в видео память
AL
AL
AL
AL
AL <= 6C
Адрес C3 <= AL
AL <= 6F
Адрес C4 <= AL
AL <= 20
Адрес C5 <= AL
AL <= 57
Адрес C6 <= AL
AL <= 6F
Адрес C7 <= AL
AL <= 72
Адрес C8 <= AL
AL <= 6C
Адрес C9 <= AL
AL <= 64
Адрес CA <= AL
AL <= 21
Адрес CB <= AL
Конец
Псевдокод программы
Слайд 26Программный стек
Стек – участок оперативной памяти доступ, к которому построен
по принципу:
«Первый пришел, последний вышел» !
Используется стек для
временного хранения кодов в процессе работы программы.
Команды для работы со стеком:
PUSH R ;Запись содержания регистра в стек
POP R ;Извлечение кода с верхушки стека в регистр
Стек располагается в нижнем диапазоне адресов оперативной памяти и начинается с адреса BF.
Адресуется стек с помощью регистра SP.
Слайд 27Обмен значений регистров
Упражнение № 3. Напишите программу change2.asm в соответствии
с упражнением 1, используя стек для временного хранения данных.
Псевдо код
программы:
AL <= 1F
CL<= 2F
AL
CL
AL
CL
КОНЕЦ
Примечание:
- поместить в стек
- извлечь из стека
Слайд 28Задания
Контрольное задание №1. Программа messages.asm Напишите программу для вывода сообщения.
Слайд 29Задания
Контрольное задание №2. Напишите программу revers.asm.
Занесите в стек коды
символов строки “QWERTY”, извлеките коды из стека и выведите на
устройство VDU.
Объясните результат.