72
12.1. Распределение памяти
12. UniPascal в деталях
В этой главе предоставляется информация о реализации UniPascal-я для
микрокомпьютера Пылдин. Она предназначена для программистов с большим опытом.
Здесь рассматриваются вопросы, такие как распределение памяти, управление
динамической памятью, внутреннее представление данных, вызов процедур и т.д.
UniPascal реализован методом, называемым смешанным методом компиляции и
интерпретации. Компилятор UniPascal представляет собою программу на языке UniPas-
cal. Результатом ее работы является псевдокод, называемый Y кодом. После
компиляции этот код интерпретируется интерпретатором. Этот метод позволяет (при
хорошо подобранном псевдокоде) получение сравнительно компактного кода.
Основным недостатком этого метода является малое быстродействие в процессе
выполнения программы по сравнению с выполнением машинного кода (без
интерпретации).
12.1. Распределение памяти
Микропроцессор СМ 601 (MC6800) - 8-битовой и его адресное пространстово -
64 килобайта. Микрокомпьютер Пылдин 601/601А/601М оснащен оперативной
памятью объемом 64 килобайта и имеет возможность для добавления постоянной
памяти объемом до 64 килобайта. Это значит, что объем памяти микрокомпьютера
может достичь 128 килобайтов (см. описание UniBIOS-а). Интерпретатор расположен в
постоянной памяти. Область памяти с адресами от $0100 до $C000 предоставляется
пользователю. Это значит, что пользовательская программа должна поместиться
(вместе с данными) в область памяти объема не больше 48 килобайтов.
Распределение памяти микрокомпьютера в процессе выполнения программы
выглядит так:
BIOS и текстовой экран
$F000
Системная часть оперативной памяти
$E000
8 x 8K ROM и 8K RAM 
(Здесь находится интерпретатор Y кода)
$C000
        Часть памяти, использованная 
 другими программами
$ZZZZ
   Часть памяти для 
       динамических переменных
$RRRR
  Стек процессора СМ 601 (MC6800)
SP
свободная память
$PPPP
 иокальные переменные процедур и 
глобальные переменные программы
$YYYY
Y код программы на UniPascal-е
$XXXX
Резервированное другой программой 
      пространство (.cmd или .pgm)
$0100
   Нулевая страница ($0000..$00FF)
$0000
<<  <  GO  >  >>

Вернуться к началу сайта