Единое адресное пространство
Единое адресное пространство Каллисто 1.0 объединяет адресные пространства памяти программ и данных ЭКВМ. Память программ (адреса 0…9999) доступна только на чтение. Как и в регистровом пространстве ЭКВМ, размер адресуемой единицы памяти в Каллисто 1.0 разный.
Карта соответствия диапазонов единых адресов и адресов ЭКВМ:
Единая адресация Каллисто | Адреса ЭКВМ | Размер адресуемой единицы памяти |
Тип данных | Доступность на запись |
---|---|---|---|---|
0…9999 | 0000…9999 памяти программ | 1 байт | целое число | только чтение |
10000…10999 | 000…999 регистровой памяти (десятичные регистры) |
8 байт | десятичное число | чтение/запись |
11000…15095 | 1000…5095 регистровой памяти (двоичные регистры) |
1 байт | целое число | чтение/запись |
15096…18167 | 5096…8167 регистровой памяти (область текста) |
1 байт | целое число, символ | чтение/запись |
19000…19999 | 9000…9999 регистровой памяти (регистры функций) |
различен | различен | различна |
При обращении к памяти стандартными средствами Каллисто 1.0 используется единая адресация. Некоторые команды, требующие 16-битного (и более) числа, берут его из двух (и более) последовательных ячеек памяти, размером в байт. При этом старший байт находится по младшему адресу, как это принято в «Электронике МК-161».
Два системных слова ИП и П производят обращение к одному регистру по его номеру в ЭКВМ без трансляции адресов. Их удобно использовать для обращения к регистрам функций, т.к. помимо прочего ИП после обращения к регистру сохраняет весь стек ЭКВМ в стандартных переменных RX, RY, RZ и RT.
Третье системное слово ИПРГ предназначено для чтения шага из памяти программ.
Эти три слова введены для совместимости с Каллисто 2.0, в которой предполагается изменить данную систему адресации.