Способы адресации МП КР580ВМ80
Для выполнения какой-либо операции в команде должно содержаться указание вида операции, а также, откуда берутся участвующие в операции числа и куда помещается результат выполненной операции (т.е. указание об источниках и приемнике операндов). Под способами адресации понимают способы указания источников и приемников операндов. Опишем способы адресации, которые используются в микропроцессоре.
Прямая адресация. При этом способе адресом операнда является указанный в команде (в байте кода операции) адрес регистра микропроцессора. Адреса регистров приведены в следующей таблице:
Под М понимается ячейка оперативной памяти, адресом которой служит содержимое пары регистров HL.
Покажем некоторые примеры команд с прямой адресацией, взятых из приведенной в таблице 8.2.3.2. системы команд микропроцессора. Здесь под мнемоникой команды понимают её сокращенное обозначение, облегчающее запоминание команды.
В кодовой комбинации команды 01 001 010 два старших разряда (01) определяют вид операции (операция пересылки содержимого одного регистра в другой), в последующих двух 3-разрядных группах (001 и 010) приведены адреса регистров С и D. Команда представляет операцию пересылки в регистр С содержимого регистра D.
В команде 10 000 010 пять старших разрядов (10 000) представляют вид выполняемой операции (операции суммирования); в трех младших разрядах (010) указан адрес регистра D, служащего источником операнда. При выполнении операции суммирования источником другого операнда и приемником результата выполненной операции является аккумулятор А.
Непосредственная адресация. При этом способе адресации операнды (один или два) задаются непосредственно в команде вслед за байтом кода операции во втором байте либо во втором и третьем байтах.
Примеры команд с непосредственной адресацией
Команда с мнемоникой ADI предусматривает суммирование содержимого аккумулятора с числом, приведенным во втором байте команды (в примере это число равно 4С16).
Команда MVI производит пересылку числа, приведенного во втором байте команды (в примере это число равно 4Е16), в регистр D, адрес которого (010) указан в разрядах D5 D4 D3 первого байта команды.
Команда LXI производит пересылку чисел, приведенных во втором и третьем байтах (в примере – чисел 6516 и А516),соответственно в младший и старший регистры пары регистров DE. В разрядах D5 D4 D3 первого байта пара регистров указана адресом (010) одного из регистров этой пары.
Косвенная адресация. При этом способе адресации в команде отмечается пара регистров блока РОН (путем указания адреса одного из регистров этой пары), содержимое которой служит адресом, по которому в оперативной памяти находится операнд.
Примеры команд с косвенной адресацией
Здесь запись [(ВС)] означает ячейку памяти, адресом которой служит содержимое пары регистров ВС.
По команде LDAX В аккумулятор загружается содержимым ячейки оперативной памяти, адресом которой служит содержимое пары регистров ВС (для указания именно этой пары регистров в разрядах D5 D4 D3 команды приведен адрес 001 регистра С).
По команде STAX В содержимое аккумулятора запоминается в ячейке, адресом которой служит содержимое пары регистров ВС (для указания пары регистров в разрядах D5 D4 D3 команды приведен адрес 000 регистра В).