Стековый процессор

Тема в разделе "WASM.BEGINNERS", создана пользователем matich, 17 авг 2007.

  1. matich

    matich New Member

    Публикаций:
    0
    Попросили меня написать эмулятор этой штуки.

    Интересует:
    1 - что это? (насколько я понял- это проц, который все вычисления через стек делает).
    2 - каков набор команд и какие регистры он содержит?

    ЗЫ: если тему создал не там, больно не пинайте =)
     
  2. Geen

    Geen New Member

    Публикаций:
    0
    млин ... про калькулятор что ли ? ... посмотри математику. там тож усе через свой стек делается.
     
  3. Mental_Mirror

    Mental_Mirror New Member

    Публикаций:
    0
  4. Quantum

    Quantum Паладин дзена

    Публикаций:
    0
    Тогда и JVM можно отнести к стековым процессорам.
     
  5. t00x

    t00x New Member

    Публикаций:
    0
    matich
    постановка задачи неполная.
    надо определить на каких данных будут выполняться операции
    3 - типы данных
    минимум - "записать в стэк"/"прочитать из стэка" (с вершины).
    "сложить"/"умножить" с вершиной стека и т.д.
    ещё, например, "обменять данные" в стэке.

    в общем случае, можно обойтись двумя типами команд:
    1) команды пересылки данных;
    2) команды арифметики.
     
  6. matich

    matich New Member

    Публикаций:
    0
    byte, word.

    Написал сначала эмулятор с такими возможностями:
    1 - из регистров только указатель стека.
    2 - push/pop (byte/word)
    3 - сложить/вычесть/разделить/умножить (byte/word)
    4 - and/or/xor/not (byte/word)
    всего вышло 20 команд.

    Потом увидел frisc(http://www.look-in.net/frisc/sx/PV/1/PVSCH/270018.html), меня это немного смутло, регистров куча, непоняток с его работой тоже.

    Была мысль сделать стек возвратов(вроде так называется), чтобы была возможность реализовать call/ret и работать с процедурами.

    Нужно добавлят ещё что-нибудь?
    Просто препод сказал, что возможно по нему(точнее с использованием эмулятора) будут делать лабы (лучше бы исопользовали emu8086, но может им стеки интереснее),
    поэтому хотелось бы сдлать что-то хорошее и простое(keep it simple), чтобы легко было разобраться в его работе.
     
  7. t00x

    t00x New Member

    Публикаций:
    0
    сохранение (журналирование) введённых команд, и их повторное выполнение было бы хорошо.