М. В. Ломоносова Факультет вычислительной математики и кибернетики В. Г. Баула Введение в архитектуру ЭВМ и системы программирования Москва 2003 Предисловие Данная книга
Вид материала | Книга |
Содержание4.2. Сравнительный анализ ЭВМ различной адресности Трёхадресная машина. Двухадресная машина. Одноадресная машина. Безадресная машина. |
- М. В. Ломоносова Факультет вычислительной математики и кибернетики Кафедра математической, 6.81kb.
- Н. И. Лобачевского Факультет Вычислительной математики и кибернетики Кафедра Математического, 172.6kb.
- Н. И. Лобачевского Факультет Вычислительной Математики и Кибернетики Кафедра иисгео, 4000.54kb.
- М. В. Ломоносова факультет Вычислительной Математики и Кибернетики Диплом, 49.56kb.
- Методы интеллектуального анализа данных и некоторые их приложения, 29.22kb.
- М. В. Ломоносова Факультет Вычислительной Математики и Кибернетики Кафедра Системного, 124.67kb.
- Н. И. Лобачевского Факультет Вычислительной математики и кибернетики Кафедра Математического, 169.45kb.
- Московский Государственный Университет им. М. В. Ломоносова. Факультет Вычислительной, 104.35kb.
- М. В. Ломоносова Факультет Вычислительной Математики и Кибернетики Реферат, 170.54kb.
- М. В. Ломоносова Факультет вычислительной математики и кибернетики Руденко Т. В. Сборник, 1411.4kb.
4.2. Сравнительный анализ ЭВМ различной адресности
При изучении ЭВМ с разным количеством адресов естественно встаёт вопрос, какая архитектура лучше, например, даёт программы, занимающие меньше места в памяти (что было весьма актуально для первых ЭВМ). Исследуем этот вопрос, составив небольшой фрагмент программы для ЭВМ с различной адресностью. В качестве примера рассмотрим реализацию оператора присваивания, который содержит типичный набор операций: x := a/(a+b)2. В наших примерах мы будем использовать мнемонические коды операций и мнемонические имена для номеров ячеек памяти, в которых хранятся переменные (т.е. мы не будем производить явного распределения памяти, так как это несущественно для нашего исследования). Кроме того, не будем конкретизировать тип величин, это тоже не влияет на размер программы.
- Трёхадресная машина.
-
СЛ
x
a
B
X := a+b
УМН
x
x
X
X := (a+b)2
ДЕЛ
x
a
x
X := a/(a+b)2
Длина программы: 3*10 = 30 байт.
- Двухадресная машина.
-
ПЕР
R
a
R := a
СЛ
R
b
R := a+b
УМН
R
R
R := (a+b)2
ПЕР
X
a
x := a;
ДЕЛ
X
R
x := a/(a+b)2
Длина программы: 5*7 = 35 байт.
- Одноадресная машина.
-
СЧ
A
S := a
СЛ
B
S := a+b
ЗП
X
x := a+b
УМН
X
x := (a+b)2
ЗП
X
СЧ
A
S := a/(a+b)2
ДЕЛ
X
ЗП
X
Длина программы: 8*4 = 32 байта.
- Безадресная машина.
-
ВСТЕК
A
Поместить a в стек
ВСТЕК
Дублировать вершину стека
ВСТЕК
B
Теперь в стеке 3 числа: b,a,a
СЛ
В стеке два числа: b+a, a
ВСТЕК
Дублировать вершину стека, в стеке b+a,b+a,a
УМН
В стеке (a+b)2,a
ОБМЕН
Поменять местами два верхних элемента стека
ДЕЛ
В стеке a/(a+b)2
ИЗСТЕКА
X
Запись результата из стека в x
В данной программе использовались команды разной длины (безадресные и одноадресные). Длина программы: 3*4 + 6*1 = 18 байт.
Наше небольшое исследование показало, что архитектура ЭВМ с безадресными командами даёт наиболее компактные программы. В начале развития вычислительной техники такие компьютеры были весьма распространены, их, в частности, выпускала известная фирма Барроуз (Burroughs). Однако в дальнейшем были предложены ЭВМ с другой архитектурой, которая позволила писать не менее компактные программ, и в настоящее время стековые ЭВМ используются редко.