четверг, 21 декабря 2017 г.

Симулятор процессора и его ассемблер

Имеется в виду программная симуляция некоторого гипотетического процессора, которую вы можете построит себе сами. Это напоминает то, что делают полномасштабные симуляторы QEMU или Bochs, но для ... совершенно примитивного процессора со своей собственной ограниченной системой машинных инструкций. Собственно, того прототипа процессора (Y86) что описывается в книге:
Брайант Р., О'Халларон Д., "Компьютерные системы: архитектура и программирование. Взгляд программиста." - БХВ-Петербург, 2005, стр.1090, ISBN: 5-94157-433-9.

(Но если кого заинтересует подобное воссоздание программной модели Y86, то делать это следует не по переводному изданию, которое изобилует ошибками в важных рисунках и схемах, а по оригинальным англоязычным изданиям книги: 2-е издание 2003г. посвящённое 32-бит модели, или 3-е издание 2015г. посвящённое 64-бит модели.)

Всё, что касается создание такой оригинальной модели, см. здесь: симулятор процессора, вплоть до исходных кодов C++ и для 32 и для 64 битовых моделей. Это, конечно, задача учебного уровня, но она:

  • позволяет легко расширить любую функциональность такого процессора (например, добавить стековую машину выполнения вещественных операций);
  • показывает построение ассемблера, соответствующего процессору, используя регулярные выражения C++ (что совсем не так часто можно встретить в примерах);
  • наглядно показывает как строятся симуляторы виртуальных машин, по типу QEMU или Bochs;