Учебный эмулятор процессора Toycomp

Рассмотрение основных принципов организации вычислительной машины и программирования на языке очень простой модели ЭВМ. Использование эмулятора процессора Toycomp в учебном процессе студентами для облегчения трудоемкого программирования на машинных кодах.

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 28.01.2019
Размер файла 125,7 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Учебный эмулятор процессора TOYCOMP

Д.С. Дубинин

Национальный исследовательский

Иркутский государственный технический университет

Рассматриваются основные принципы организации вычислительной машины и программирования на языке очень простой модели ЭВМ. Это упрощенная машина под названием TOYCOMP (сокращенное от Toy Computer - игрушечный компьютер), существующая в виде имитирующей программы, написанной на языке высокого уровня и использующейся в учебном процессе студентами специальности «Вычислительные машины, комплексы, системы и сети» при изучении курса «Машинно-ориентированные языки».

Ключевые слова: эмулятор; машинная команда; машинный код.

TRAINING EMULATOR OF THE TOYCOMP PROCESSOR

D. Dubinin, National Research Irkutsk State Technical University

This paper discusses the basic organizational principles of a computing machine and programming on a language of a very simple model of a computer.

Key words: emulator, computer instruction, machine code.

Курс «Машинно-ориентированные языки» по учебному плану специальности ЭВМ изучается на восьмом семестре и предназначен для обучения программированию непосредственно в машинных кодах.

К этому моменту студенты уже являются программистами, привыкшими к языкам высокого уровня. И это не может не формировать определённый образ мышления и стиль программирования, мешающий воспринять этот курс.

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

Для облегчения трудоемкого программирования на машинных кодах был разработан мнемонический язык низкого уровня - ассемблер. Основа любого ассемблера в том, чтобы одна мнемокоманда (текстовое обозначение) соответствовала команде (или микрокоманде) вычислительного устройства. Применение ассемблера привело к моментальному появлению различного рода программного обеспечения, но так как в 1950-1970-е гг. основными пользователями компьютеров являлись НИИ и военные учреждения, то и задачи они выполняли узконаправленные. Недостатки ассемблеров выявились при первых же модернизациях вычислительных устройств. Все, что было ранее разработано сотрудниками, приходилось заново переписывать для новых процессоров.

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

После дело дошло до создания интуитивно понятного синтаксиса, где например, арифметическая формула использовала синтаксические обозначения арифметических операции: сложений (+), вычитания (-), умножений (*), деления (/) и т. д.

С помощью таких языков писались несложные программы, где не требовалось быстродействие и хватало объема памяти компьютера. Можно сказать, что такое предназначение языкам высокого уровня сохранилось и до сих пор - все, что некритично к качеству, быстродействию и объему создается на языках высокого уровня.

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

TOYCOMP разработана исключительно в педагогических целях. Перед изучением современной вычислительной машины целесообразно познакомиться с TOYCOMP. Замена современной ЭВМ типа INTEL на TOYCOMP позволяет не рассматривать многие сложные характеристики реальной машины, часто неудобные для начального освоения, и облегчает переход от принципов программирования на языках высокого уровня к языкам низкого уровня.

учебный эмулятор процессор toycomp

Рис. 1

Главная форма программы TOYCOMP состоит из устройства ввода, центрального процессора (ЦП) и снова устройства вывода (рис 1). На форме сплошными линиями обозначена пересылка данных, а пунктирными - пересылка сигналов управления. В центральный процессор входят регистр команд (РК), счетчик команд (СК) и регистр, именуемый аккумулятором (АК). Регистры представляют собой специальные ячейки памяти, обмен информацией с которыми происходит с большой скоростью. Регистры имеют такой же размер, что и ячейки основной памяти. Регистр-аккумулятор является источником исходных данных и местом записи результатов выполнения многих команд TOYCOMP. Образно говоря, аккумулятор - это место, где происходит большинство основных событий во время вычислительного процесса. Другие два регистра будут рассмотрены ниже.

Память TOYCOMP состоит из последовательности отдельных ячеек, именуемых словами. В каждом слове памяти может содержаться целое четырехзначное число со знаком в диапазоне от -9999 до 9999. Память TOYCOMP состоит из 100 слов, к которым можно обращаться, используя в качестве их адресов целые числа от 0 до 99.

В общем случае команду TOYCOMP можно представить следующим образом: ААВВ, где АА - код операции (КОП), а ВВ - операнд, определяющий адрес ячейки памяти. Коды операции в TOYCOMP являются двузначными десятичными числами, адреса операндов являются также двухразрядными десятичными числами. Программа в машинных кодах TOYCOMP представляет собой последовательность четырехразрядных десятичных чисел. Поскольку TOYCOMP - машина с запоминаемой программой, то в ней отсутствует средства определения, является ли то или иное слово памяти - командой или данными. Любое слово, выбираемое процессором для выполнения, рассматривается им как команда. Какое слово памяти выполнять процессору следующим, определяется кодом предыдущей операции и реализованной в машине логикой управления последовательностью выполнения команд.

00 Останов

01 Загрузка в аккумулятор (пересылка содержимого ячейки памяти в АК)

02 Запись в память (пересылка содержимого АК в ячейку памяти)

03 Сложение

04 Вычитание

05 Умножение

06 Деление

07 Ввод (обеспечивает ввод числа с клавиатуры в ячейку памяти)

08 Вывод (обеспечивает вывод на дисплей числа из ячейки памяти)

09 Переход безусловный

10 Переход, если больше нуля

11 Переход, если равно нулю

Команды для выполнения арифметических действий в TOYCOMP просты по своей структуре и похожи одна на другую. При их выполнении предполагается, что значение первого операнда находится в аккумуляторе. Вторым операндом всегда является адресуемая в команде ячейка памяти. Результат выполнения операции помещается в аккумулятор, что приводит к уничтожению его предыдущего содержимого.

Программы загружаются в память TOYCOMP, начиная с адреса 0, всегда являющегося адресом первой команды программы. Если в программе отсутствуют команды перехода, то выполнение команд будет происходить последовательно, одна за другой: после команды с адресом 0 будет выполнена команда с адресом 1, и т. д. до тех пор, пока не встретится команда с кодом 00 (останов).

В эмуляторе предусмотрены основные процессорные прерывания (рис. 2 и 3):

1. Деление на 0.

2. Некорректный ввод данных.

3. Неизвестная операция.

4. Переполнение.

Рис. 2. Деление на 0

Рис. 3. Неверная команда

Таблицы "Память" и "Программа" имеют одно и то же содержание и существуют для удобства просмотра хода выполнения программы и наблюдения за памятью (область данных слева, сама программа справа).

Для изменения значения ячейки памяти достаточно навести указатель мышки на нужное поле в таблице "Память" или в таблице "Программа" и нажать левую кнопку, откроется окошко ввода кода программы (рис. 4).

Рис. 4. Окно ввода кода

Нажатие кнопки "Старт" на главной форме программы установит "Регистр команд" и поместит указатель текущей выполняемой команды (00) в таблицу "Программа", так же кнопка переименуется в "ReBoot", и текущее состояние памяти эмулируемой машины будет сохранено.

При нажатии кнопки "ReBoot" сбрасываются регистры ЦП, из таблицы "Программа" удаляется указатель и восстанавливается состояние памяти, бывшее до запуска программы, кнопка переименуется в "Старт".

Кнопка "Шаг" позволит выполнить текущую операцию и установить счётчики команд на 1 выше или на указанную командой ячейку памяти.

Результаты. Программа уже используется для обучения студентов специальности ЭВМ в 2011 г. По ходу внедрения программы выявлялись отдельные недостатки, которые были успешно устранены. Преподаватели отмечают повышение эффективности обучения и облегчение процесса адаптации при переходе от программирования на ЯВУ к машинно-ориентированным языкам. У студентов появляется более полное представление о принципах программного управления, свойствах ячеек памяти. Пошаговая эмуляция позволяет наблюдать за выполнением команд программы и состоянием регистров.

Библиографический список

1. Абель П. Язык ассемблера для IBM PC и программирования. М.: Высш. шк., 1992. 447 с.

2. Гук М. Процессоры Intel: от 8086 до Pentium II: Архитектура. Интерфейс. Программирование. СПб.: Питер, 1998. 220 с.

Размещено на Allbest.ru


Подобные документы

  • Разработка программы эмулятора, которая должна имитировать рабочий цикл процессора для каждой команды. Анализ структуры микропроцессора. Моделирующие переменные. Мнемоника команд моделируемого процессора. Разработка структуры программы: классов, методов.

    курсовая работа [156,8 K], добавлен 07.11.2012

  • Принцип работы процессора (одномагистральная структура). Временные диаграммы, описывающие выполнение микроопераций для каждой команды. Структурная схема управляющего автомата на основе памяти с одним полем адреса. Описание процессора на языке Active VHDL.

    курсовая работа [621,0 K], добавлен 24.09.2010

  • Разработка модели процессора, выполняющего набор машинных команд. Структурная схема процессора (операционного и управляющего автоматов), анализ принципа работы. Содержательный алгоритм микропрограммы, синтез управляющего автомата на основе жесткой логики.

    курсовая работа [871,9 K], добавлен 16.09.2010

  • Общая характеристика программной модели процессора Intel x86. Анализ особенностей регистров общего назначения. Назначение команд безусловной передачи управления, рассмотрение функций. Знакомство с проблемами программирования на языке Ассемблера.

    курсовая работа [1,6 M], добавлен 04.02.2014

  • Характеристики элементов вычислительной машины для выполнения офисных операций. Выбор процессора, расчет его мощности на 60 GFLOPS. Выбор материнской платы, системы охлаждения для процессора, физической и оперативной памяти для хранения информации.

    контрольная работа [43,6 K], добавлен 11.11.2015

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

    контрольная работа [18,5 K], добавлен 26.12.2010

  • Управление взаимодействием всех устройств ЭВМ. История создания и развития производства процессора. Структура центрального процессора. Регистры общего назначения. Обозначения популярных моделей процессоров Intel и AMD. Команды центрального процессора.

    реферат [111,2 K], добавлен 25.02.2015

  • Первые машины вычисления. Осуществление прорыва в области вычислительной техники. Процессоры пятого поколения. Развитие микропроцессоров Intel Pentium и Intel Pro. Языки программирования высокого уровня. Внутренняя оперативная память процессора.

    реферат [28,2 K], добавлен 07.10.2013

  • Описание файловой системы Unix. Работа основных команд ls, cmp, comm, их ключей. Разработка программного продукта, работающего в среде Windows и представляющего собой эмулятора командного процессора операционной системы Unix. Выбор средств реализации.

    курсовая работа [183,0 K], добавлен 29.04.2015

  • Построение универсального лабораторного комплекса вычислительной техники. Создание программы-эмулятора контроля арифметическо-логического устройства с использованием остаточных кодов по модулю 3. Обоснование элементной базы; синтез основных узлов АЛУ.

    курсовая работа [1,9 M], добавлен 01.10.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.