Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Сравнительный анализ ЭВМ различной адресности





При изучении ЭВМ с разным количеством адресов естественно встаёт вопрос, какая архитектура лучше, например, даёт программы, занимающие меньше места в памяти (что было весьма актуально для первых ЭВМ). Исследуем этот вопрос, составив небольшой фрагмент программы для ЭВМ с различной адресностью. В качестве примера рассмотрим реализацию оператора присваивания, который содержит типичный набор операций: 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). Однако в дальнейшем были предложены ЭВМ с другой архитектурой, которая позволила писать не менее компактные программы, и в настоящее время стековые ЭВМ используются редко.







Date: 2015-10-18; view: 455; Нарушение авторских прав



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию