Терминология в области ЭВМ, ВС и комплексов

Автор работы: Пользователь скрыл имя, 19 Марта 2014 в 06:15, лекция

Описание работы

Хотя срок, прошедший со времени создания первой ЭВМ, и достаточно большой, однако вопросы терминологии в этой области пока что не нашли своего полного и окончательного решения. Рассмотрим наиболее распространенные определения основных терминов в области ЭВМ и вычислительных систем (ВС).
Вычислительная машина (ВМ, Computer) — совокупность технических средств, создающая возможность проведения обработки информации и получения результата в необходимой форме. В состав ВМ входит и системное программное обеспечение (ПО).

Файлы: 1 файл

Kurs_lektsy.doc

— 3.36 Мб (Скачать файл)

Для того, чтобы команда содержала в явном виде всю необходимую информацию о задаваемой операции, она должна содержать поле кода операции и четыре адреса для указания ячеек памяти, содержащих два операнда, участвующих в операции, ячейки, в которую помещается результат операции, и ячейки, содержащей следующую команду рис. 3.4,а. Такой порядок выборки команд называется принудительным. Он использовался в некоторых первых моделях ЭВМ и в настоящее время не применяется.

Можно установить, как это принято для большинства машин, что после выполнения данной команды, расположенной по адресу К (и занимающей L ячеек), выполняется команда из (K+L)-й ячейки. Такой порядок выборки команд называется естественным. Он нарушается только специальными командами. В таком случае отпадает необходимость указывать в команде в явной форме адрес следующей команды.

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

Программирование микропроцессора

Программа обработки информации, записываемая в память МП, составляется на основе набора команд, присущих данному конкретному типу микропроцессора. Рассмотрим особенности программирования на языке машинных команд микропроцессора КР580ИК80, для чего разберем несколько примеров.

Пример 1.

Подпрограмма 3.1 обеспечивает извлечение числа из адреса памяти 0В00, инвертирование его и запись результата в адрес памяти 0В01:

Подпрограмма 3.1 (в мнемокодах)

Мнемокод Комментарий

LDA 0В00 Загрузить в аккумулятор число из адреса 0В00 ОЗУ

СМА Инвертировать число, находящееся в аккумуляторе

STA 0В01 Записать результат инвертирования по адресу 0В01

RST 1  Прервать выполнение программы 1

При записи программы все числа представляются в шестнадцатеричной системе счисления.

Для записи программы в память микроЭВМ необходимо перевести мнемокоды команд в машинные коды. Команды могут быть одно-, двух- или трехбайтные и должны занимать в памяти соответственно один, два или три адреса: (рис. 2.8)

Подпрограмма 3.1 (размещение по адресам памяти)

Адрес Число Комментарий

0800 ЗА Код команды LDA

0801 00 Младший байт адреса числа

0802 ОВ Старший байт адреса

0803 2F Код команды СМА

0804 32 Код команды STA

0805 01 Младший байт адреса результата

0806 ОВ Старший байт адреса

0807 CF Код команды RST 1

Предварительную запись программ удобно проводить в более компактной форме: указать начальный адрес каждой команды, помня при этом, что команды в зависимости от -длины (одно-, двух- или трехбайтовые) в памяти будут занимать от 1 до 3 последовательных ячеек памяти. При такой записи в левом столбце указываются лишь адреса команд. Это позволяет сократить объем при описании программ и сделать более простым их анализ:

Подпрограмма 3.1 (общий вид записи)

Адрес  Машинный код  Мнемокод  Комментарий

0800  ЗА 000BA   LDA 0В00  Получить число

0803  2F   СМА   Инвертировать число

0804  32 010В   STA0B01  Запись по адресу 0В01

0807  CF   RST 1   Прервать выполнение программы

При написании сложных программ часто возникает необходимость выполнения одних и тех же вычислений в различных местах основной программы. Для упрощения программы повторяющиеся части оформляются в виде подпрограмм последовательностей команд, выполнение которых может быть вызвано из любого места программы любое количество раз. Для обращения к подпрограммам и возврата из них используются команды вызова подпрограмм CALL и возврата RET.

Пример 2.

Подпрограмма временной задержки. Алгоритм работы подпрограммы приведен на рис. 3.13. Общее время задержки вычисляется по формуле Тцд=Тт1+(Тт2+ТтЗ+Тт4)*NI+Тт5, где NI - число, первоначально записанное в счетчике. В качестве счетчика используется один из РОН В, в который записывается число NI из регистра С. Команда NOP здесь используется для увеличения времени выполнения цикла, а следовательно, и общей задержки. Вместо команды NOP можно использовать любую последовательность команд, выполнение которых не изменяет содержимого регистров МП. Время записи числа NI в регистр В и возврата из подпрограммы фиксировано и в цикл не входит. Минимальная задержка определяется при NI=01 и равна

Тцд мин = Тт1+Тт2+Тт3+Тт4+Тт5;

максимальная задержка вычисляется по формуле

Тцд макс=Тт1+(Тт2+ТтЗ+Тт4)*256+Тт5, где 256 - максимальное 8-ми разрядное двоичное число. Подпрограмма 3.2 реализует временную задержку, записанную в соответствии с данным алгоритмом.

Подпрограмма 3.2

Адрес  Машинный код  Метка  Мнемокод Комментарий

0900  41     MOV В,С Записать число из регистра С в регистр

В

0901  00    DLY  NOP  Нет операции

0902  05     DCRB  Уменьшить число в регистре В на 1

0903  С2 0109    JNZ В DLY Если число, записанное в регистре

В<>0, то идти на DLY

0906  С9    RET 

При написании программ с условными переходами и подпрограммами начальным командам подпрограмм и командам, к которым осуществляется программный переход, присваивается метка.

Метка используется для обозначения места перехода при написании программ в мнемокодах, как и на языках высокого уровня.

Пример 3. Использование подпрограммы временной задержки при организации звуковых сигналов в микроЭВМ.

В микроЭВМ звуковые сигналы могут формироваться простой схемой, представленной на рис. 3.14, на вход которой со звуковой частотой записывается по очереди «О» и «1». Будем считать, что устройство формирования звуковых сигналов имеет адрес 80. Схема алгоритма работы подпрограммы генерации звуковых колебаний приведена на рис. 3.15.

При выполнении арифметических операций двоичное число можно представить как семиразрядный код со знаковым восьмым разрядом. Такое представление позволяет записывать числа в диапазоне ±128, а отрицательные числа кодировать в обратном или дополнительном коде. В МП КР580ИК80 предусмотрены команды с числами, представленными в двоично-десятичной системе счисления и арифметические команды с числами двойной разрядности (16 разрядов). Рассмотрим простые примеры выполнения арифметических операций.

Подпрограмма 3.3.

Адрес   Машинный код  Метка Мнемокод код Комментарий

0А00   AF   ВРР XRA А  Очистить аккумулятор

0А01  D3 80    OUTBP  Записать 00 в выходное устройство

0А03  CD 0009   CALL DLY  Вызвать подпрограмму задержки

0А06   2F    СМА   Записать код в аккумулятор

0А07  D3 80    OUT ВР  Записать код в выходное устройство

0А09  CD 0009   CALL DLY  Вызвать подпрограмму задержки

0А0С   С9    RET   Возврат из подпрограммы

Пример 4. Сложение массива однобайтных чисел и получение двухбайтового результата. Подпрограмма 3.4.

Адрес   Машинный код Метка  Мнемокод  Комментарий

0800  21 000В  MAIN LXI Н,0В00 Записать в регистры Н, L адрес первого слагаемого

0803  06 05    MVI В,05 Загрузить в регистр В количество слагаемых

0805  CD 090Z   CALL ADDB Вызвать подпрограмму сложения

0808  CF    RST 1  Прервать выполнение программы

0809  AF   ADDB XRA А Очистить аккумулятор

080А  4F    MOV С,А Очистить счетчик переносов

080В  86   INT  ADD М Прибавить к содержимому аккумулятора

число из массива слагаемых

080С  2 1008    JNC TRM Если переноса нет, то идти нa TRM

080F  ОС    INR С  Увеличить содержимое регистра С на 1

0810  23   TRM  INXH  Указать на следующий адрес слагаемого

0811  05    DCRB  Уменьшить содержание счетчика слагаемых

0812  С2 0В08   JNC CNT Если не все слагаемые то идти на CNT

0815  С9    RET  Возврат

Слагаемые располагаются в последовательных адресах памяти. Входными параметрами используемой подпрограммы ADD В являются адрес первого слагаемого, записанный в регистрах Н, L, и число слагаемых, записанное в регистре В. Выходным параметром программы MAIN является сумма, старший байт которой записан в регистре С, а младший - в аккумуляторе.

Алгоритм подпрограммы сложения состоит в том, что после прибавления каждого элемента массива определяется переполнение аккумулятора (разряд С=1); если это имеет место, то содержимое регистра С увеличивается на 1. Таким образом, за счет суммирования единиц переноса получается старший байт суммы (рис. 3.16).

МикроЭВМ может проводить арифметические операции с числами с двойной или большей длиной машинного слова. Так как МП БИС имеет 8-разрядное АЛУ, то операции с такими числами должны проводиться по байтам, начиная с младших. Так, операция сложения чисел 17F5 + 3411 имеет следующий вид:

Рис. 3.16. Алгоритм подпрограммы сложения

Из приведенных примеров видно, что для суммирования (вычитания) младших байтов чисел необходимо применять команду ADD, а для сложений вычитания остальных чисел -команду ADC, которая учитывает состояние разряда С регистра признаков МП БИС.

Пример 5. Нахождение разности чисел, имеющих одинаковую длину, показано в программе

Подпрограмма 3.5.

Адрес  Машинный код  Метка Мнемокод Комментарий

0900 AF   SBN XRA A Очистить аккумулятор и флаг С

0901 IA   CNT LDAXD Записать в аккумулятор уменьшаемое

0902 9Е    SBBM  Вычесть из содержимого аккумулятора

вычитаемое

0903 77    MOV M,A Записать разность на место вычитаемого

0904 23    INXH  Указать на следующий байт вычитаемого

0905 13    INXD  Указать на следующий байт уменьшаемого

0906 0D    DCP С  Уменьшить содержимое счетчика длины числа

0907 С2 0109   JNZ CNT Если не последний (старший) байт числа, то

идти на CNT

090А D0    RNC  Если байт старший и результат без заема (С=0),

то возврат

090В CD1200   CALL BEEP  Если был заем (C=l), то подать сигнал

090Е CF    RSTI  Прервать выполнение программы

Входные параметры: регистр С - длина чисел (байт); регистры Н, L - адрес младшего байта вычитаемого; регистры D, Е - адрес младшего байта уменьшаемого. Каждое из чисел описывается в последовательных адресах памяти, начиная с младших байтов. Результат заносится в память, отведенную под вычитаемое. В этом случае, если уменьшаемое меньше вычитаемого, будет вызвана подпрограмма ВРР формирования звукового сигнала.

 

ИЕРАРХИЧЕСКАЯ СТРУКТУРА ПАМЯТИ

Память – совокупность отдельных устройств, которые запоминают, хранят, выдают информацию. Отдельные устройства памяти называют запоминающими устройствами. Производительность вычислительных систем в значительной мере определяется составом и характеристиками отдельных запоминающих устройств, которые различают по принципу действия, техническим характеристикам, назначениям. Основные операции с памятью – процедура записи, процедура чтения (выборки). Процедуры записи и чтения также называют обращением к памяти. За одно обращение к памяти «обрабатывается» для различных устройств различные единицы данных (байт, слово, двойное слово, блок).

Основной единицей хранения данных в памяти является бит. Эта самая маленькая единица памяти.

Память состоит из ячеек, каждая из которых может хранить некоторую порцию информации. Каждая ячейка имеет номер, который называется адресом. По адресу программы могут ссылаться на определенную ячейку. Если память содержит n ячеек, они будут иметь адреса от 0 до n - 1. Все ячейки памяти содержат одинаковое число бит. Если ячейка состоит из k бит, она может содержать любую из 2^k комбинаций. На рис. 2.8 показаны 3 различных варианта организации 96-разрядной памяти. Отметим, что соседние ячейки по определению имеют последовательные адреса.

 

Рис. 2.8. Три варианта организации 96-разрядной памяти

В компьютерах, в которых используется двоичная система счисления, адреса памяти также выражаются в двоичных числах. Если адрес состоит из m бит, максимальное число адресованных ячеек составит 2^m. Например, адрес для обращения к памяти, изображенной на рис. 2.8, а, должен состоять по крайней мере из 4 бит, чтобы выражать все числа от 0 до 11. При устройстве памяти, показанном на рис. 2.8, б и 2.8, в, достаточно 3-разрядного адреса. Число бит в адресе определяет максимальное количество адресуемых ячеек памяти и не зависит от числа бит в ячейке. 12-разрядные адреса нужны и памяти из 212 ячеек по 8 бит каждая, и памяти из 212 ячеек по 64 бит каждая.

Информация о работе Терминология в области ЭВМ, ВС и комплексов