Использование команд
Косвенные, непосредственные, относительные адреса
Система команд разной длины. Битовая память.
Система команд фиксированной длинны
1. Длинная команда (А1, А2) - общее адресное пространство для РОН и ячеек памяти.
2. Короткая команда (R1, R2) – нужная косвенная или непосредственная адресация.
3. Сверхдлинная команда
Имеет 3 варианта длины, это усложняет работу процессора, но экономно использует память. Для реализации нужна ячейка переменной длины.
1. Длинные ячейки для хранения чисел с плавающей точкой или двухадресных команд;
Схема выполнения:
1. ((УК)) → РК
2. (УК) + 1 → РК
3. Выполняется левая часть
4. Выполняется правая часть
5. Переход к следующей команде
2. Отказ от Неймановской архитектуры, создание различной памяти для данных и команд;
3. Программное регулирование длины ячейки.
Решение: создание битовой памяти: организуются ячейки из произведения числа битов; основная единица памяти - слово. Оно имеет длину равную 2 или 4 байта. Вводится понятие “двойное слово” при этом процессор, вызывая команду, должен определить её длину и перед её выполнением определить длину операндов. Для решения первой задачи в команде выделяется головная часть, которая первой считывается в РК. Она содержит информацию о длине всей команды. Длина операндов определяется после считывания. Информация содержится в головной части.
|
|
Команды с регистровыми адресами - короткие, т.к. регистров редко более 120ти. Формат “регистр-регистр” – самый быстрый.
Адреса, используемые в команде, различают по способу указания на память.
- Косвенный адрес (адрес адреса) (А)=х(В)=А и ((В))=х
Косвенный адрес необходим если в последних ячейках хранятся наборы данных(векторы, матрицы, фрагменты программ) необходимо хранить адрес первой ячейки в соответствующей последовательности.
Для различия прямых и косвенных адресов вводятся
признаки: Mi = 0 - Ai – прямой адрес
Mi = 1 - Ai –косвенный адреc
Р | M1R1 | M2R2 |
Формат команды -
Команда с косвенным адресом выполняется:
1. ((УК)) ® РК
2. (УК) +1 ® УК
3. Дешифрация Р
4. Если M1= 0, то (R1)® r1, иначе ((R1))® r1
5. Если M2 = 0, то (R2)® r2, иначе ((R2))® r2
6. (r1)p(r2)®r3
7. (r3)®R2
8. Перейти к п.1
Программа состоит из команд, исходные данные делятся на переменные и постоянные. Распределение ОП может выглядеть так:
Программы | Данные | Свободные ячейки | ||
Команды | Переменные/константы | Промежуточные результаты/свободные/конечные |
Константы вводятся один раз и присоединяются к программе. Они располагаются в памяти сразу после последней команды, бывают одноразового и многократного использования, постоянные нужные многим командам располагаются в одном месте. Прямо за используемой командой.
|
|
Р | R1 | X |
Формат
R1 – прямой адрес
Х – непосредственный адрес
Формат команды состоит из операционной и адресной части, поэтому const. На месте второго адреса считают вторым адресом и называют непосредственным адресом. Результат выполнения команды всегда будет в R1. Участок программы, содержащий данную команду, используется многократно и не изменяет постоянную.