Микропроцессорный комплект больших интегральных схем, страница 3

Современная практика программирования основана на том, что программа пишется на символьном языке, а затем транслируется, то есть переводится в машинный код. Таким образом, для программирования МП используются два средства: язык источника, используемый программистом, или входной язык; объектный язык, используемый машиной.

Входной язык состоит из определенного набора команд. Простейшим из таких языков является мнемокод. Операторы мнемокода отражают основное содержание выполняемой операции. Они представляют собой комбинации трех-четырех алфавитных символов -  условные сокращения названий операций на естественном (разговорном) языке.

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

Форматы команд. Команды МП могут иметь длину в одно, два или три машинных слова. Все слова таких команд должны следовать друг за другом и располагаться в соседних ячейках памяти. В МП К580 длину в одно слово имеют команды перемещения данных из одного регистра в другой и преобразования данных (арифметические и логические).

Длину в два слова имеют команды двух типов: во-первых, команды ввода-вывода, в которых второй байт указывает номер соответствующего порта; во-вторых, так называемые команды с непосредственно адресацией. Это название не вполне точное, так как обращение к памяти не происходит, а второй байт сам непосредственно дает 8-разрядный операнд.

Из трех слов состоят команды загрузки запоминания данных, а также условных безусловных переходов; в этих случаях второе и третье слова команды образуют собственный 16-разрядный адрес. Запись 16-разрядных слов производится таким образом, что в ячейке с меньшим адресом записывается младший байт, а в ячейке с большим адресом – старший байт адреса операнда. Такой порядок записи 16-разрядных чисел в 8-разрядные ячейки памяти соблюдаются всегда. На практике это приводит к тому, что в машинных кодах операндов нарушается привычный порядок записи чисел, при котором слева пишутся старшие разряды, а справа – младшие.

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

Число команд в системе команд МП значительно больше, чем число кодов операций, поскольку при формировании команды один и тот же код операции может использоваться при различных способах адресации.

Способы адресации МП

В МП используется пять различных способов адресации.

Прямая адресация. При этом способе адресации младшая половина шестнадцатеричного адреса содержится во втором байте трехбайтовой команды, а старшая половина – в ее третьем байте. Первый байт используется для ???? кода операции.

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

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

BC - 00

HL -10

DE - 01

SP - 11

В первом регистре пары всегда хранится старший байт адреса, а во втором – младший байт.