
- •Лабораторная работа № 10 Команды операций с битами
- •Цель работы
- •2.Основные теоретические сведения
- •3. Порядок выполнения работы
- •3.1. Управление отдельными битами ячеек пд и регистров специальных функций
- •3.2. Использование команд операций с битами для переключения регистровых банков
- •3.3. Вычисление логических функций с помощью команд операций с битами
- •Задания для самостоятельной работы
- •4.Содержание отчета
- •Контрольные вопросы
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ
ГОМЕЛЬСКИЙ ГОСУДАРСТВЕННЫЙ ДОРОЖНО-СТРОИТЕЛЬНЫЙ КОЛЛЕДЖ имени Ленинского комсомола
Методические указания по выполнению лабораторных работ по дисциплине «ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ»
Лабораторная работа № 10 Команды операций с битами
ГГДСК Гомель 2011
Цель работы
Изучить и практически исследовать работу команд операций с битами однокристальных микроконтроллеров семейства MCS-51 (МК51) на персональном компьютере.
2.Основные теоретические сведения
Отличительной особенностью данной группы команд является то, что они оперируют с однобитными операндами. В качестве таких операндов могут выступать отдельные биты некоторых регистров специальных функций, а также 128 программных флагов пользователя.
МК51 имеет следующие команды операций с битами
CLR C ; (C) 0 - Сброс переноса
CLR bit ; (b) 0 - Сброс бита
SETB C ; (C) 1 - Установка переноса
SETB bit ; (b) 1 - Установка бита
CPL C ; (C) (/C) - Инверсия переноса
CPL bit ; (b) (/b) - Инверсия бита
ANL C, bit ; (C) (C) (b) - Логическое И бита и переноса
ANL C, /bit ; (C) (C) (/b) - Логическое И инверсии бита и переноса
ORL C, bit ; (C) (C) (b) - Логическое ИЛИ бита и переноса
ORL C, /bit ; (C) (C) (/b) - Логическое ИЛИ инверсии бита и переноса
MOV C, bit ; (C) (b) - Пересылка бита в перенос
MOV bit, C ; (b) (C) - Пересылка переноса в бит
Эти команды в зависимости от выполняемой функции могут быть одно- или двухбайтными. Те из них, которые оперируют с флагом переноса, имеют однобайтный код. В командах, где фигурирует символическое имя bit , после кода операции добавляется байт прямоадресуемого бита. В зависимости от значения байта адреса прямоадресуемый бит выбирается из двух групп битов.
Значения адреса от 0 (00H) до 127 (7FH) определяют биты в 16-байтном блоке памяти данных между адресами 20H и 2FH (см. рис. 1). Они пронумерованы последовательно от младшего бита младшего адреса к старшему биту старшего адреса. Это так называемые программные флаги пользователя.
Адреса битов от 128 (80H) до 255 (FFH) соответствуют битам регистров специальных функций. Адреса битов этих регистров вычисляются иначе, чем адреса ячеек ПД пять старших битов адреса совпадают с собственными адресами регистров, а три младших бита идентифицируют позицию бита в пределах регистра (см. рис. 2).
Хотя МК51 имеет 20 регистров специальных функций, побитовый доступ обеспечен только для 11 PSW, ACC, B, P0, P1, P2, P3, TCON, SCON, IE, IP. У 6 из них (PSW, P3, TCON, SCON, IE, IP) отдельные разряды имеют собственные символические имена.
Обратите внимание, что аккумулятор как регистр специальных функций с именем ACC допускает адресацию отдельных бит (разрядов) с использованием соответствующего позиционного номера ACC.7 – 7-й бит, ACC.1 – 1-й бит аккумулятора.
В языке Ассемблера МК51 адрес бита указывается одним из трех способов
1) числом или выражением, соответствующим прямому адресу бита
Адрес ячейки ПД , HEX Адреса битов, HEX
-
7
6
5
4
3
2
1
0
2F
7F
7E
7D
7C
7B
7A
79
78
2E
77
76
75
74
73
72
71
70
2D
6F
6E
6D
6C
6B
6A
69
68
2C
67
66
65
64
63
62
61
60
2B
5F
5E
5D
5C
5B
5A
59
58
2A
57
56
55
54
53
52
51
50
29
4F
4E
4D
4C
4B
4A
49
48
28
47
46
45
44
43
42
41
40
27
3F
3E
3D
3C
3B
3A
39
38
26
37
36
35
34
33
32
31
30
25
2F
2E
2D
2C
2B
2A
29
28
24
27
26
25
24
23
22
21
20
23
1F
1E
1D
1C
1B
1A
19
18
22
17
16
15
14
13
12
11
10
21
0F
0E
0D
0C
0B
0A
09
08
20
07
06
05
04
03
02
01
00
Рис. 1. Карта адресуемых бит в памяти данных
Адрес регистра, HEX Адрес битов, HEX Имя регистра
-
7
6
5
4
3
2
1
0
F0
F7
F6
F5
F4
F3
F2
F1
F0
B
E0
E7
E6
E5
E4
E3
E2
E1
E0
ACC
D0
D7
D6
D5
D4
D3
D2
D1
D0
PSW
B8
-
-
-
BC
BB
BA
B9
B8
IP
B0
B7
B6
B5
B4
B3
B2
B1
B0
P3
A8
AF
-
-
AC
AB
AA
A9
A8
IE
A0
A7
A6
A5
A4
A3
A2
A1
A0
P2
98
9F
9E
9D
9C
9B
9A
99
98
SCON
90
97
96
95
94
93
92
91
90
P1
88
8F
8E
8D
8C
8B
8A
89
88
TCON
80
87
86
85
84
83
82
81
80
P0
Рис. 2. Карта адресуемых бит регистров специальных функций
2) именем или адресом регистра (ячейки ПД), содержащего данный бит, и позицией бита в регистре (ячейке ПД), разделенными точкой
3) для определенных битов регистров специальных функций указанием символического имени.
Биты также могут обозначаться произвольными именами директивой Ассемблера REG (для ассемблера фирмы “2500 A.D.”).
Например, 5-й бит регистра PSW может быть сброшен (очищен) любой из четырех команд
USER_FLAG REG PSW.5 ; Описание символа пользователя
………………..
………………..
CLR 0D5H ; Абсолютная адресация
CLR PSW.5 ; Использование точечного оператора
CLR F0 ; Использование собственного имени бита
CLR USER_FLAG ; Использование символа пользователя
Установить в единицу 3-бит ячейки ПД с адресом 20H можно любой из трех следующих команд
FLAG1: REG 20H.3 ; Описание флага пользователя
……………….
SETB 03H ; Абсолютная адресация
SETB 20H.3 ; Использование точечного оператора
SETB FLAG1 ; Использование имени флага пользователя