Главная страница Комод Кухня Компьютерный стол Плетеная мебель Японский стиль Литература
Главная  Кремниевые микросхемы 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 [ 51 ] 52 53 54 55 56 57 58 59 60

его NEW SUM (новой суммой). Затем находим число N+1 и проверяем, меньше ли оно числа 201. Если да, то процесс вычислений продолжается. Если N+1=201, выполнение программы прекращается, а полученное значение S будем считать искомым результатом .

Алгоритм вычислений чаще легче понять, чем представить его специальной диаграммой, называемой схемой алгоритма'. Схема алгоритма сложения для рассматриваемой задачи приведена на рис. 11.2. Как следует из рисунка, схема алгоритма - это ориентированная сеть с вершинами, различных типов.

Как превратить схему алгоритма в программу?

На языке БЕЙСИК рассматриваемая программа выглядела бы следующим образом:

10LETS = 0 20 LETN = 0 30 LETS=S-i-N 40 LETN=N--I 50 IF N<201 GO TO 30 00 PRINT S 70 END

После прохождения программы выпе-чатывается ответ.

Просмотрим еще раз все упоминавшиеся ранее команды для воображаемого микропроцессора, описанного в тексте, после чего станет ясно, можно ли написать подобную программу для него в шестнадцатеричном коде;


Рис. 11,2. Схема алгоритма сложения целых чисе.ч от I до 200

Команда

Символ Мнемокод операции

LOAD (ЗАГРУЗИТЬ) аккумулятор LDA ADD (СЛОЖИТЬ) без переноса ADD

ADD (СЛОЖИТЬ) с переносом ADC

М-А

М+А-А

М+А-1-CF-vA

Подобные диаграммы ранее назывались блок-схемами алгоритмов За-,СЬ и далее используется название по ГОСТ. {Прим. пер.)



Команда'

STORE (ЗАПОМНИТЬ) содержимое аккумулятора

INCREMENT (УВЕЛИЧИТЬ) содержимое аккумулятора

COMPLEMENT (ДОПОЛНЕНИЕ ДО I) содержимого аккумулятора

AND (логическое И) содержимого памяти и аккумулятора

OR (логическое ИЛИ) содержимого памяти и аккумулятора

XOR (ИСКЛЮЧАЮЩЕЕ ИЛИ) содержимого памяти и аккумулятора

CLEAR CARRY FLAG (ОЧИСТИТЬ ФЛАГ ПЕРЕНОСА)

CLEAR ACCUMULATOR (ОЧИСТИТЬ АККУМУЛЯТОР)

SHIFT (СДВИГ) содержимого аккумулятора вправо

SHIFT (СДВИГ) содержимого аккумулятора влево

STOP (СТОП)

Продолжение

Мнемокод Символ операции

STA А->М

INC А+1-А

СОМР А-А

AND М-А->А

OR М -t-A-A

XOR М ф А->А

CCF О-СР

CLA 0-А

SAR О-> 765432 Ю->СР

SAL CF-765432100

BRK PC stops

где М - ячейка памяти, А - аккумулятор, CF - флаг переноса, PC - счетчик команд.

Отметим также ранее упоминавшиеся флаги: флаг переноса, флаг нуля, флаг переполнения, флаг знака или флаг отрицательности. Они будут выставляться (устанавливаться) или сбрасываться в соответствии с результатом каждой выполненной арифметической или логической операции. Например, для операции ADD можно рассмотреть следующие случаи установки флагов:

1) установить флаг переноса, если есть перенос из старшего (седьмого) разряда, л сбросить его, если переноса нет;

2) установить флаг нуля, если результат - нуль, и сбросить его в противном случае (если результат не равен ну,/1ю);

3) установить флаг переполчения, если значение седьмого разряда результата отличается от значения седь-

У читателя не должно сложиться впечатление, что приведенный список наиболее употребительных команд - это все, чем располагает типовой микропроцессор. Например, список команд микропроцессора Intel 8080 включает в себя 111 наименований (см. [б]), (Прим. пер.)



мого разряда любого операнда, и сбросить флаг переполнения в противном случае;

4) установить флаг знака, если значением седьмого разряда результата служит единица (сигнал о том, что число отрицательное), и сбросигь флаг знака, если значение седьмого разряда результата -нуль (сигнал о том, что число положительное).

При программировании для конкретного микропроцессора Вам следует внимательно изучить набор его команд, чтобы выяснить, какие в нем содержатся флаги и какие команды на какие из флагов влияют. Между разными типами микропроцессоров в этом смысле различия весьма существенны.

Информация о том, какие команды на какие флаги оказывают влияние, для рассматриваемого микропроцессора может быть представлена в следующем виде:

Устанавливаемые

Команда

LOAD аккумулятор ADD без переноса ADD с переносом STORE содержимое аккумулятора

INCREMENT содержимое аккумулятора

COMPLEMENT содержимое аккумулятора

AND памяти и аккумулятора

OR памяти и аккумулятора

XOR памяти и аккумулятора

CLEAR CARRY FLAG

CLEAR ACCUMULATOR

SHIFT правый

SHIFT левый

STOP

Здесь используются следующие обозначения: - на флаг влияния не оказывается; О - флаг устанавливается в 0; 1-флаг устанавливается в 1; *-флаг устанавливается или сбрасывается в зависимости от результата операции; С - флаг переноса; Z-флаг нуля, О-флаг переполнения; S - флаг знака.

К этому набору команд добавим еще три команды, ни одна из которых на состояние флагов не влияет: BRANCH UNCONDITIONAL (ПЕРЕХОД БЕЗУСЛОВНЫЙ), BRANCH ON ZERO (ПЕРЕХОД ПО НУЛЮ) и

Мпекомод

флаги G Z

c



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 [ 51 ] 52 53 54 55 56 57 58 59 60

© 2007 EPM-IBF.RU
Копирование материалов разрешено в случае наличия письменного разрешения