
- •Введение.
- •Аналитическая часть.
- •1.1. Системы счисления.
- •1.1.1. Двоичная система счисления.
- •1.1.2. Восьмеричная система счисления.
- •1.1.3. Шестнадцатеричная система счисления.
- •1.2. Способы перевода чисел из одной системы счисления в другую.
- •1.3. Форматы представления чисел с плавающей точкой.
- •2. Описание программы-эмулятора.
- •Практическая разработка.
- •Описание алгоритма решения задачи.
- •Распределение памяти.
- •Листинг программы.
- •Описание использованных средств вычислительной техники.
- •Список использованной литературы.
2. Описание программы-эмулятора.
Программа-эмулятор является своего рода программной средой, дающей возможность, используя стандартный персональный компьютер класса IBM PC, выполнять программы, написанные в машинных кодах процессора КР580ИК80А. Кроме того, программа-эмулятор позволяет ознакомиться с работой основных модулей и устройств, входящих в состав вычислительного комплекса СМ-1800, фактически реализуя принцип абстрактной машины. Однако программа-эмулятор лишь имитирует процессы, происходящие в реальной ЭВМ, и, в связи с этим, наибольшую практическую пользу от работы с программой можно извлечь, имея возможность хотя бы кратко ознакомиться с работой реального вычислительного комплекса СМ-1800. Более того, программа-эмулятор позволяет реализовать некоторые дополнительные возможности, такие как, просмотр содержимого памяти, портов ввода/вывода, регистров центрального процессора.
Другими словами, программа-эмулятор воспроизводит процессы, протекающие в реальной микроЭВМ, с максимально возможной степенью достоверности, поддерживает постоянный диалог с оператором, эмулирует манипуляциями с ПКУ и ВТА, и в то же время максимально использует возможности операционной системы Windows, под управлением которой проходит её работа.
Для выполнения данного курсового проекта я выбрал программу эмулятор Смирнова по нескольким факторам один из них заключается в том что интерфейс программы приближен к внешнему виду реальной машины. Что обеспечивает быстрый и безболезненный переход с реальной машины на эмулятор и наоборот.
Вторым фактором является то что весь свой лабораторный практикум по СМ-1800 я выполнил именно на эмуляторе Смирнова так что работа с ним мне представляется мне более привычной. Но в тоже время я бы не стал утверждать что эмулятор Демина-Пушкина не имеет право на существования по моему мнению это тоже очень достойный эмулятор но его подводит интерфейс, который на мой взгляд с внешним видом реальной машины не имеет ни чего общего. И при схожести всех остальных параметров я выбрал эмулятор Смирнова из за его интерфейса.
-
Практическая разработка.
-
Описание алгоритма решения задачи.
Сравнение двух 4-х байтных констант будем производить побайтно, то есть сначала будем сравнивать старшие байты соответствующих констант, а в случае их равенства будем переходить к сравнению младших байт. Так как нам нужно сравнить две константы по модулю, то нужно в первую очередь получить нули в старших битах 4-ых байтов констант. Старшие биты 4-ых байтов определяют знаки соответственно 1-ой и 2-ой констант. Если значение этого старшего байта равно 0, то число положительное, если 1 – число отрицательное.
-
Получение 0 в старшем бите 4-го байта 2-ой константы, запись в H,L.
-
Получение 0 в старшем бите 4-го байта 1-ой константы, запись в A.
-
Сравнение 4-го байта 1-ой константы с 4-ым байтом 2-ой константы.
-
Переход к пункту 20, если CY=1, то есть, если 2-ая константа больше 1-ой.
-
Переход к пункту 22, если 4-ые байты не равны между собой, т.е. 1-ая константа больше 2-ой.
-
Создание счетчика на 3 шага.
-
Загрузка адреса 5003 в B,C.
-
Загрузка адреса 5006 в D,E.
-
Загрузка в пару H,L содержимого ячейки памяти, адрес которой находится в D,E.
-
Загрузка А содержимым ячейки памяти, адрес которой находится в B,C.
-
Сравнение 2-х последних байт.
-
Переход к пункту 20, если CY=1, то есть, если 2-ая константа больше 1-ой.
-
Переход к пункту 22, если 4-ые байты не равны между собой, т.е. 1-ая константа больше 2-ой.
-
Уменьшение содержимого B,C на 1.
-
Уменьшение содержимого D,E на 1.
-
Уменьшение содержимого L на 1.
-
Если L≠0, то возвращаемся к пункту 9.
-
Вывод на экран сообщения:”1-ая константа=2-ой константе”. Запись в регистр B значения FFFF
-
Выход из программы.
-
Вывод на экран сообщения:”2-ая константа больше 1-ой”. Запись в регистр B значения 00.
-
Выход из программы.
-
Вывод на экран сообщения:”1-ая константа больше 2-ой”. Запись в регистр B значения 01.
23) Выход из программы.