ВУЗ:
Составители:
5.6. СИСТЕМА КОМАНД МК51
Система команд включает 111 команд: передачи данных
арифметических операций, логических операций, передачи управления,
операций с битами. По формату команды могут быть одно, двух и
трехбайтовыми. Большинство команд (96) выполняется за один или два
машинных цикла.
МК 51 имеет 13 типов команд. Первый байт команды любых типов
и формата всегда содержит код операции. Второй и третий байты содержат
либо адреса операндов, либо непосредственные операнды.
Типы операндов: биты, 4-битные цифры, байты и 16-битные слова.
При обозначении операндов для различия типов данных широко
используются специальные символы, которые ставятся перед буквами или
цифрами в операнде (префиксы):
# – префикс непосредственного операнда;
@ – префикс косвенной адресации;
/ – префикс инверсного значения.
Обозначения операндов:
аd – прямой 8-битный адрес байта резидентной памяти данных (0-127),
порта или регистра специальных функций:
add – прямой 8-битный адрес приемника данных,
ads – прямой 8-битный адрес источника данных;
ad11 – прямой 11-битный адрес передачи управления;
ad16 – прямой 16-битный адрес передачи управления (ad16H – старший
байт ad16L – младший байт);
bit – прямой 8-битный адрес бита;
#d – непосредственные 8-разрядные данные (константа);
#d16 – непосредственный 16-битный операнд (константа) (#d16H и #d16L);
rel – 8-битный относительный адрес передачи управления (дополнительный
код чисел от -127 до +128).
Таблица 5.4. СИСТЕМА КОМАНД МК51
Команда
№
Мнемоника
Опе
ранды
Алгоритм
Код
операци
и
Описание команды
Команды передачи данных
1. MOV
A, Rr
(r = 0..7)
(A) ← (Rr)
11101rrr
Передача содержимого регистра
о
бщего назначения в аккумулятор.
2. MOV A, ad
(A) ← (ad)
11100101
Передача содержимого ячейки памяти
c
адресом ad в аккумулятор.
3. MOV A, @Ri
(i = 0,1)
(A) ← ((Ri))
1110011i
Передача содержимого ячейки
рез
и
дентной памяти данных в
аккумулятор. Адрес ячейки находится в
регистре
Ri
текущего банка регистров,
содер
жимое регистра не изменяется.
4. MOV A, #d
(A) ← #d
01110100
Загрузка константы в аккумулятор.
5. MOV Rr, A
(r = 0..7)
(Rr) ← (A)
11111rrr
Передача содержимого аккумулятора
в регистр общего назначения.
6. MOV ad, A
(ad) ← (A)
11110101
Передача байта в ячейку памяти
ра
сположенную по адресу ad из
аккумул
ятора.
7. MOV @Ri, A
(i = 0,1)
((Ri)) ← (A)
1111011i
Передача содержимого аккумулятор а
в ячейку резидентной памяти данных.
Адрес ячейки находится в регистре
Ri
текущего банка регистров, содержимое
регис
тра не изменяется.
8. MOV @Ri, ad
(i = 0,1)
((Ri)) ← (ad)
0110011i
Пересылка байта, который находится
по адресу ad, в ячейку памяти с адресом
находящемся в регистре Ri (текущего
банка регистров). Содержимое Ri не
изменяется.
9. MOV @Ri, #d
(i = 0,1)
((Ri)) ← #d
01110101
Пересылка константы #d в ячейку
памяти с адресом находящемся в
рег
истре Ri текущего банка регистров.
Содержимое Ri не изменяе
тся.
10.
MOV Rr, #d
(r = 0..7)
(Rr ) ← #d
01111rrr
Передача в регистр общего
назнач
ения (Rr) константы (#d)
11.
MOV Rr, ad
(r = 0..7)
(Rr ) ← (ad)
10101rrr
Передача в регистр байта из памяти с
адресом
ad.
12.
MOV ad, Rr
(r = 0..7)
(ad) ← (Rr)
10001rrr
Пересылка из регистра (Rr) по
пр
ямому адресу (ad).
13.
MOV ad, @Ri
(r = 0,1)
(ad) ← (@Ri)
1000011i
Пересылка байта, который находится
по адресу находящем
eся в регистре Ri в
ячейку памяти с адресом ad.
Содерж
имое Ri не изменяется.
14.
MOV ad, #d
(ad) ← #d
01110101
Передача байта (#d) в ячейку с
адр
есом ad.
15.
MOV add, ads
(add) ← (ads)
10000101
Пересылка содержимого ячейки с
адресом
ads в ячейку памяти с адресом
add
. Содержимое ячейки (ads) не
изменяется.
Страницы
- « первая
- ‹ предыдущая
- …
- 51
- 52
- 53
- 54
- 55
- …
- следующая ›
- последняя »