CPU Sim - Википедия - CPU Sim
Оригинальный автор (ы) | Дейл Скрайен[1] |
---|---|
Стабильный выпуск | 4.0.11 / август, 2017 |
Написано в | Ява |
Операционная система | MS-Windows, Linux, Mac (Кроссплатформенность ) |
Тип | IDE |
Лицензия | GPLv3 + |
Интернет сайт | www |
CPU Sim это среда разработки программного обеспечения для моделирования простых компьютеров. Он был разработан Дейлом Скрайном, чтобы помочь студентам понять компьютерные архитектуры. С этим заявление пользователь может моделировать новые или существующие простые процессоры. Пользователи могут создавать новые виртуальные процессоры с настраиваемыми машинный язык инструкции, которые реализуются последовательностью микрокоманд. CPU Sim позволяет пользователю редактировать и запускать программы на языке ассемблера для моделируемого процессора.
CPU Sim был запрограммирован с использованием Ява Качать упаковка. Это означает, что это независимая платформа (работает на каждой платформе, имеющей Виртуальная машина Java установлены).
Пример процессора Wombat 1
Образец компьютерной системы, Wombat 1, снабжен CPU Sim. Он имеет следующие регистры:
- ПК (счетчик команд );
- соотв (аккумулятор );
- ir (регистр инструкций );
- мар (регистр адреса памяти );
- mdr (регистр данных памяти );
- положение дел.
В язык ассемблера компьютера Wombat 1 состоит из 12 инструкций. Каждая инструкция хранится в 16 битах, первые 4 - это Код операции а остальные 12 - это адресное поле.
Мнемонический | Код операции | Длина поля | Смысл |
---|---|---|---|
остановка | 0 | 16 | останавливает выполнение программы |
нагрузка | 1 | 4 12 | передает данные из памяти в аккумулятор |
хранить | 2 | 4 12 | передает данные из аккумулятора в память |
читать | 3 | 4 (12) | помещает данные из IO консоли в аккумулятор |
записывать | 4 | 4 (12) | отправляет на IO консоль данные из аккумулятора |
Добавить | 5 | 4 12 | добавить данные из памяти в аккумулятор, и результат затем сохраняется в аккумуляторе |
вычесть | 6 | 4 12 | вычитает данные из памяти из аккумулятора, и результат затем сохраняется в аккумуляторе |
умножать | 7 | 4 12 | умножает данные из памяти на аккумулятор, и результат затем сохраняется в аккумуляторе |
разделять | 8 | 4 12 | делит данные из памяти в аккумулятор, и результат затем сохраняется в аккумуляторе |
jmpz | 9 | 4 12 | перейти к адресу, если аккумулятор равен 0 |
jmpn | А | 4 12 | перейти к адресу, если аккумулятор отрицательный |
Прыгать | B | 4 12 | безусловный переход к адресу |
Функции
CPU Sim имеет следующие особенности:
- позволяет создавать ЦП (виртуальный), включая регистры, ОЗУ, микрокоманды и машинные инструкции;
- позволяет создавать, редактировать и выполнять программы на языке ассемблера для моделируемого процессора;
- позволяет переходить вперед и назад через выполнение программ на языке ассемблера.
Пример программы для ЦП Wombat 1
Эта программа читает целые числа, пока не будет прочитано отрицательное целое число. Затем он выводит сумму всех положительных целых чисел.
Начало: чтение // чтение n -> acc jmpn Done // переход к Done, если acc <0. add sum // добавление суммы к сумме накопителя acc // сохранение новой суммы jump Start // вернуться и прочитать следующее число Готово : load sum // загрузить окончательную сумму write // записать окончательную сумму stop // stopum: .data 2 0 // 2-байтовое место, где хранится сумма
Также иногда используются следующие модификации программы:
Начало: чтение // чтение n -> acc jmpz Done // переход к Done, если nacc равен 0. add sum // добавить сумму в acc store sum // сохранить новую сумму jump Start // вернуться и прочитать следующее число Готово : load sum // загрузить окончательную сумму write // записать окончательную сумму stop // stopum: .data 2 0 // 2-байтовое место, где хранится сумма
здесь можно использовать отрицательный ввод для вычитания или 0 для разрыва цикла.
Смотрите также
- Сравнение программного обеспечения EDA
- Список бесплатных симуляторов электронных схем
- Симулятор компьютерной архитектуры