2.2. Система команд микроЭВМ К1816
Система команд К1816 во многом повторяет систему команд МП580. Тем не менее между ними есть весьма существенные различия, обусловленные архитектурой микроконтроллера К1816.
1.Разделение памяти на CSEG и DSEG. Объем внутренней памяти данных составляет 64 или 128 байт, а внешней — не превышает 256 байт.
Эти сегменты образуют разные поля памяти, поэтому размер кода адреса данных не превышает одного байта. Объем внутренней и внешней памяти не превышает 2 Кбайт, суммарный объем памяти не превышает 4 Кбайт, для адресации такой памяти достаточен код длиной в 12 бит.
Для уменьшения длины адресной части команды программная память К1816 имеет страничную организацию.
Страница CSEG включает 256 ячеек, которые адресуются младшими разрядами программного счетчика PC{7:0}. Все страницы объединяются в два банка (нулевой и первый) по 2 Кбайта каждый. Выбор банка определяется состоянием триггера выбора банка памяти MBF, который формально является старшим разрядом счетчика команд. При выполнении программы переход от страницы к странице происходит автоматически (граница прозрачна), а при переходе от банка к банку — только путем программного изменения значения MBF (граница не прозрачна). Номер страницы в банке определяется старшими разрядами программного счетчика РС{10:8}. Таким образом, адрес ячейки программной памяти формируется как ADRC{10:1} = номер банка, номер страницы, адрес ячейки = MBF.PC{10:8}.PC{7:0}
2. Разделение сверхоперативных регистров на два банка. При обращении к сверхоперативному регистру в режиме прямой адресации его адрес формируется по номеру банка RBF и адресу регистра внутри банка N: ADR R = 000. (11&RBF).N{2:0}
3.Наличие внешних (Т0, T1) и внутренних (TF) сигналов прерывания помимо стандартного сигнала прерывания INT.
4.Наличие внутренних признаков пользователя (F0, F1)
5.Ограниченное число портов ввода-вывода (напомним, что в МП580 возможно обращение к 256 портам ввода и 256 портам вывода).
Команды пересылки. Служат для изменения содержимого аккумулятора, регистров оперативной памяти и регистров портов ввода-вывода в режиме копирования [2]. Пересылка осуществляется от регистра источника S (source) к регистру приемнику D (destination). Порядок следования имен регистров в команде фиксирован: DS-передача идет справа-налево, в пересылке регистр-регистр одним из регистров всегда является аккумулятор. Используется прямая регистровая, косвенная @ и непосредственная # адресация. В скобках указаны аналоги команд МП580.
MOV A, Rr; r = 0 + 7 (MOV A, R)
MOV Rr, A (MOV R, A)
MOV A, @Rn (MOV A, M); MOV @Rn, A (MOV M, A); N = 0,1; - в МП580 только по одному адресному регистру (регистру HL)
MOVP A, @A - загрузка аккумулятора содержимым ячейки программной памяти, расположенной в текущей странице (page) выполняемой программы,
MOVP3 A, @A - то же, но с третьей страницы (page 3) нулевого банка программной памяти,
MOVX A, @Rn; MOVX @Rn, A; - обращение к внешней (exernal) оперативной памяти,
MOV Rr, # DATA (MVI R, D8)
MOV A, # DATA (MVI A, D8)
MOV A, PSW; MOV PSW, A; - в отличии от МП580 имеет длину в один байт,
MOV A, T - считывание с таймера,
MOVT, A - запись в таймер,
XCH A, Rr; XCH A, @ Rn; - обмен (exchange) между аккумулятором и ячейкой ОЗУ,
XCHD A, @ Rn - обмен младшими тетрадами,
SWAP A - обмен местами младшей и старшей тетрады аккумулятора,
INA, Pp (IN ADR8) p = 1, 2 - передача данных из порта P1 или P2 в аккумулятор,
INA, BUS (IN ADR 8) - передача данных из порта BUS в аккумулятор,
OUTL, Pp, A; OUTL BUS, A; - передача данных из аккумулятора и их фиксация (latch) в портах P1, P2, BUS.
Команды преобразования данных.
ANL A, (ANA R) Операции поразрядного преобразования выполняются как операции накапливающего типа относительно аккумулятора или регистров портов ввода-вывода.
ORL A, Rr (ORA R)
XRL A, Rr (XRA R)
ANL A, @ Rn (ANA M)
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.