40
ввод и выполнение тратится много времени. Набор методов адресации
в каждой системе команд является компромиссным сочетанием извест-
ных механизмов адресации, выбранных проектировщиками архитекту-
ры исходя из набора решаемых задач.
Ниже приведены основные методы адресации, используемые в
системе команд семейства MCS-51.
Неявная адресация
. В команде не содержится явных указаний об
адресе участвующего в операции операнда или адресе, по которому
помещается результат операции, но этот адрес подразумевается. В ко-
мандах наиболее часто неявно адресуется аккумулятор как приемник
результата операции. Например, результат сложения содержимого ак-
кумулятора (A) и регистра R1 текущего банка данных командой
ADD A,R1 записывается в неявно адресуемый аккумулятор. Вся ука-
занная команда занимает в памяти один байт, в то время как адрес
только аккумулятора (8Eh области SFR) содержит один байт.
Непосредственная адресация
. В поле адреса команды содер-
жится не адрес операнда, а непосредственно сам операнд. На непо-
средственную адресацию указывает специальный символ # перед чис-
лом. Например, командой MOV A,#15h шестнадцатеричное число 15
(второй байт команды) загружается в аккумулятор. В системе команд
непосредственная адресация обозначена как #data, где data – число
(data = 00h...FFh).
Прямая адресация
. В поле адреса команды указан прямой адрес
ячейки памяти данных, в которой находится или куда заносится опе-
ранд. Например, командой MOV A,15h содержимое ячейки DSEG с ад-
ресом 15h загружается в аккумулятор. Ячейка памяти имеет прямую
адресацию, а аккумулятор - неявную. В зависимости от местонахожде-
ния адресуемого операнда, прямая адресация подразделяется на пря-
мую регистровую и абсолютную.
Прямая регистровая адресация
. В поле адреса команды указан
прямой адрес регистра текущего регистрового банка. Регистров в каж-
дом банке восемь, и для их адресации необходим трехбитовый прямой
адрес. В мнемонике команд адресуемый регистр обозначен Rn, где
n=0...7. Все поля команды умещаются в один байт. Такую адресацию
называют короткой. Например, MOV R4,R1.
Прямая абсолютная адресация
позволяет обратиться к любой
ячейке DSEG и области SFR. Прямой адрес в этом случае занимает
один байт, а команда – два байта. В системе команд байт прямого ад-
реса обозначен словом direct (прямой) (direct = 00h…FFh). Например,
команда MOV 80h,R2 (или MOV P0,R2) загружает содержимое регист-
ра R2 текущего банка данных в порт Р0 (ячейка 80h области SFR). Если
оба операнда имеют прямую абсолютную адресацию, то команда ста-
новится трехбайтовой (Например, MOV 80h,15h).
Косвенная адресация
. В поле адреса указан адрес ячейки памя-
ти, в которой находится прямой адрес операнда. В системе команд на
косвенную адресацию указывает специальный символ @. Свойством