Автор работы: Пользователь скрыл имя, 19 Марта 2014 в 06:15, лекция
Хотя срок, прошедший со времени создания первой ЭВМ, и достаточно большой, однако вопросы терминологии в этой области пока что не нашли своего полного и окончательного решения. Рассмотрим наиболее распространенные определения основных терминов в области ЭВМ и вычислительных систем (ВС).
Вычислительная машина (ВМ, Computer) — совокупность технических средств, создающая возможность проведения обработки информации и получения результата в необходимой форме. В состав ВМ входит и системное программное обеспечение (ПО).
Для того, чтобы команда содержала в явном виде всю необходимую информацию о задаваемой операции, она должна содержать поле кода операции и четыре адреса для указания ячеек памяти, содержащих два операнда, участвующих в операции, ячейки, в которую помещается результат операции, и ячейки, содержащей следующую команду рис. 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+
Подпрограмма 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 бит каждая.
Информация о работе Терминология в области ЭВМ, ВС и комплексов