Реферат: Программа-имитатор
· уменьшит указатель стека на 2 (целое число занимает в памяти 2 байта);
· запишет данные по полученному адресу.
· При извлечении данных из стека процессор проделает следу шее:
· считает данные из стека;
· увеличит указатель на 2.
В командах работы со стеком адрес ОЗУ не фигурирует в явном виде. Но при этом молчаливо предполагается, что указатель стека уже задан. При задании указателя надо быть внимательным. Если указатель стека определен неправильно, то запись в стек может разрушить полезную информацию в ОЗУ.
Таким образом, мы рассмотрели способы адресации информации, которые существуют почти во всех типах процессора и которые я использовал в своем имитаторе.
Руководство пользователя.
Описание программы
Изложенную выше структуру микропроцессора я попытался реализовать в своей программе.
Основную часть программы составляет Редактор . Он представляет собой место, где вводится программа, которую выполняет процессор. Каждая команда вводится в свою ячейку, имеющую адрес. Размер адресного пространства редактора составляет 1Кб. Начальная ячейка имеет адрес 1000, конечная – 2024. В качестве операнда в одно- и двухадресных командах выступает один из регистров общего назначения. Я выделил следующую систему команд.
Одноадресные команды.
Представлены в следующей форме: Операция операнд ОП1.
Очистить ОП1– обнуляет значение операнда.
Увеличить на 1 ОП1 – увеличивает значение операнда.
Уменьшить на 1 ОП1 – уменьшает значение операнда.
Двухадресные команды.
Представлены в следующей форме: Операция первый операнд ОП1 второй операнд ОП2.
Переслать ОП1 в ОП2 – пересылает значение первого операнда во второй операнд.
Добавить ОП1 к ОП2– добавляет значение первого операнда ко второму операнду, результат во втором операнде.
Вычесть ОП1 из ОП2 – вычитает значение первого операнда из второго операнда, результат во втором операнде.
Сравнить ОП1 с ОП2 – сравнивает разность второго и первого операнда с нулем, значения операндов не меняются, результат влияет на состояние регистра состояний.
Безадресные команды.
Возврат из подпрограммы – осуществляет возврат из подпрограммы в ячейку, следующую за командой вызвавшей эту подпрограмму, используется только в подпрограммах
Стоп – команда останова, ставится обязательно в конце программы, после ее выполнения ни какие команды не выполняются.
Команды перехода.
Переход на К слов – безусловный переход – осуществляет переход на К слов.
Вызов подпрограммы по адресу – переход на адрес К с запоминанием адреса возврата для команды возврата из подпрограммы.
Если <> переход на К слов – переход на К слов, если результат <>0.