Формальные языки, грамматики и основы построения трансляторов. Кревский И.Г - 114 стр.

UptoLike

114
процессе выполнения лабораторных работ и курсового проектирования.
Особенностью архитектуры является то, что все действия выполняются
только над элементами в вершине стека, результаты операций также
помещаются в вершину стека (рис.20.1). Поэтому в арифметических и
логических операциях нет необходимости в указании адреса операндов. Если
операция имеет 2 операнда, то ее выполнения подразумевает перенос
элемента
из вершины стека в регистр-аккумулятор и «понижение» на один
элемент вниз указателя стека. Второй операнд, оказавшийся в вершине стека,
подается непосредственно в АЛУ. Результат операции помещается в
вершину стека вместо него.
Память
команд
Регистр
команд (IR)
Регистр
адреса
данных (RA)
Указатель
стека (SR)
Память
данных
Стек
АЛУ
А
ккумулятор
.
.
.
Рис. 20.1. Структура виртуальной машины
Команды:
LIT const – поместить константу в вершину стека.
LOAD n – поместить переменную, размещенную по адресу n в вершину
стека.
STO n – запись значения из вершины стека по адресу n (присваивание).
JMP k – безусловный переход к команде, расположенной по адресу k.
JEQ k – переход к команде, расположенной по адресу k в случае
равенства двух верхних элементов стека.
JLT k – переход к команде, расположенной по адресу k,
если число в
вершине стека меньше следующего за ним числа стека.
                                                                             114
процессе выполнения лабораторных работ и курсового проектирования.
Особенностью архитектуры является то, что все действия выполняются
только над элементами в вершине стека, результаты операций также
помещаются в вершину стека (рис.20.1). Поэтому в арифметических и
логических операциях нет необходимости в указании адреса операндов. Если
операция имеет 2 операнда, то ее выполнения подразумевает перенос
элемента из вершины стека в регистр-аккумулятор и «понижение» на один
элемент вниз указателя стека. Второй операнд, оказавшийся в вершине стека,
подается непосредственно в АЛУ. Результат операции помещается в
вершину стека вместо него.


                                  Указатель                    Аккумулятор
                                  стека (SR)


                                                    .
                                                    .
                                                    .
                   Регистр
                 команд (IR)
                                    Память         Стек       АЛУ
 Память                             данных
 команд
                   Регистр
                   адреса
                 данных (RA)

                       Рис. 20.1. Структура виртуальной машины
Команды:
         LIT const – поместить константу в вершину стека.
         LOAD n – поместить переменную, размещенную по адресу n в вершину
стека.
         STO n – запись значения из вершины стека по адресу n (присваивание).
         JMP k – безусловный переход к команде, расположенной по адресу k.
         JEQ k – переход к команде, расположенной по адресу k в случае
равенства двух верхних элементов стека.
         JLT k – переход к команде, расположенной по адресу k, если число в
вершине стека меньше следующего за ним числа стека.