ЦП Да
Оригинальный автор(ы) | Дейл бежит [1] |
---|---|
Стабильная версия | 4.0.11
/ август 2017 г. |
Написано в | Ява |
Операционная система | MS-Windows, Linux, Mac ( кроссплатформенный ) |
Тип | ИДЕТ |
Лицензия | GPLv3+ |
Веб-сайт | www |
CPU Sim — это среда разработки программного обеспечения для моделирования простых компьютеров. Он был разработан Дейлом Скрайеном, чтобы помочь студентам понять компьютерную архитектуру . С помощью этого приложения пользователь может моделировать новые или существующие простые процессоры. Пользователи могут создавать новые виртуальные процессоры с помощью специальных инструкций машинного языка , которые реализуются последовательностью микроинструкций. CPU Sim позволяет пользователю редактировать и запускать программы на языке ассемблера для моделируемого процессора.
CPU Sim был запрограммирован с использованием пакета Java Swing . Это означает, что он не зависит от платформы (работает на каждой платформе, на которой установлена виртуальная машина Java ).
Образец процессора Wombat 1
[ редактировать ]Пример компьютерной системы Wombat 1 снабжен процессором Sim . Имеет следующие регистры:
- ПК ( счетчик программ );
- акк ( аккумулятор );
- ir ( регистр инструкций );
- mar ( регистр адреса памяти );
- mdr ( регистр данных памяти );
- статус.
Язык ассемблера компьютера Wombat 1 состоит из 12 инструкций. Каждая инструкция хранится в 16 битах; первые 4 — это код операции , а остальные 12 — поле адреса.
Мнемоника | Код операции | Длина поля | Значение |
---|---|---|---|
останавливаться | 0 | 16 | останавливает выполнение программы |
нагрузка | 1 | 4 12 | переносит данные из памяти в аккумулятор |
магазин | 2 | 4 12 | переносит данные из аккумулятора в память |
читать | 3 | 4 (12) | помещает данные из консоли ввода-вывода в аккумулятор |
писать | 4 | 4 (12) | отправляет данные из аккумулятора на консоль ввода-вывода |
добавлять | 5 | 4 12 | добавляет данные из памяти в аккумулятор, а затем результат сохраняется в аккумуляторе |
вычесть | 6 | 4 12 | вычитает данные из памяти из аккумулятора, а затем результат сохраняется в аккумуляторе |
умножать | 7 | 4 12 | умножает данные из памяти на аккумулятор, а затем результат сохраняется в аккумуляторе |
разделять | 8 | 4 12 | делит данные из памяти в аккумулятор, а результат затем сохраняется в аккумуляторе |
jmpz | 9 | 4 12 | перейти по адресу, если аккумулятор равен 0 |
jmpn | А | 4 12 | перейти по адресу, если аккумулятор отрицательный |
прыгать | Б | 4 12 | безусловный переход по адресу |
Функции
[ редактировать ]CPU Sim имеет следующие особенности:
- позволяет создавать ЦП (виртуальный), включая регистры, ОЗУ, микроинструкции и машинные инструкции;
- позволяет создавать, редактировать и выполнять программы на языке ассемблера для моделируемого ЦП;
- позволяет шагать вперед и назад при выполнении программ на языке ассемблера.
Пример программы для процессора Wombat 1
[ редактировать ]Эта программа читает целые числа до тех пор, пока не будет прочитано отрицательное целое число. Затем он выводит сумму всех положительных целых чисел.
Start: read // read n -> acc jmpn Done // jump to Done if acc < 0. add sum // add sum to the acc store sum // store the new sum jump Start // go back & read in next number Done: load sum // load the final sum write // write the final sum stop // stop sum: .data 2 0 // 2-byte location where sum is stored
Иногда также используется следующая модификация программы:
Start: read // read n -> acc jmpz Done // jump to Done if nacc is 0. add sum // add sum to the acc store sum // store the new sum jump Start // go back & read in next number Done: load sum // load the final sum write // write the final sum stop // stop sum: .data 2 0 // 2-byte location where sum is stored
Здесь можно использовать отрицательный ввод для вычитания или 0 для разрыва цикла.
См. также
[ редактировать ]- Сравнение программного обеспечения EDA
- Список бесплатных симуляторов электронных схем
- Симулятор компьютерной архитектуры