1816 (961166), страница 4
Текст из файла (страница 4)
Примечание. Банк регистра определяется разрядами RS0, RS1 регистра флагов (FL). По умолчанию установлен нулевой банк.
б) Пересылка значения регистра по прямому адресу в РПД.
Команда | Структура | Код |
MOV ad, Rn | 1000 1rrr | 88…8F |
ad | XX |
Примечание. Используйте ячейки памяти в диапазоне адресов 40Н…7FH
2.Команды обращения к памяти.
В этих командах используется косвенная адресация с помощью регистров r0 или r1.
-
Занесение информации в резидентную память данных (РПД)
Команда | Структура | Код |
MOV @Ri,A | 1111 011i | F6/F7 |
-
Введите в память программ код команды по 1000 адресу.
-
Занесите в аккумулятор произвольное значение.
-
Запишите в регистр банка памяти данных, номер которого указан в команде (b0r0 или b0r1), значение адреса РПД. Выполните команду в пошаговом режиме.
-
Проверьте правильность выполнения команды. Результат занесите в отчет.
-
Занесение константы.
Команда | Структура | Код |
MOV @Ri,#d | 0111 011i | 76/77 |
#d | XX |
-
Введите команду в память программ, начиная с 1000 адреса.
-
Во второй байт команды (адрес 1001) занесите значение константы.
-
Запишите в регистр, номер которого указан в команде, значение адреса РПД .
-
Выполните команду в пошаговом режиме.
-
Проверить правильность выполнения команды. Результат занесите в отчет.
-
Чтение памяти
Команда выполняет пересылку данных из РПД в аккумулятор. Предварительно следует занести в ячейку памяти пересылаемое значение, и в соответствующий регистр - адрес ячейки
Команда | Структура | Код |
MOV A,@Ri | 1110 011i | E6/E7 |
(Ri) | XX |
По команде пересылается значение ячейки РПД, адрес которой указан в регистре b0r0 или b0r1.
-
Однооперандные команды.
Выполните приведенные команды, предварительно занеся в аккумулятор (А) и соответствующий регистр (Rn) конкретные значения. Результаты выполнения команд занесите в отчет.
Команда | Структура | Код | Содержание команды |
INC А | 0000 0100 | 04 | Инкремент аккумулятора |
INC Rn | 0000 1rrr | 08…0F | Инкремент регистра |
CLR A | 1110 0100 | E4 | Сброс аккумулятора |
SWAP A | 1100 0100 | C4 | Обмен местами тетрад в аккумуляторе |
4. Двухоперандные команды
Команда | Структура | Код | Содержание команды |
ADD A,Rn | 0010 1rrr | 28…2F | Сложение акк. и рег.(результат в А) |
MUL A,B | 1010 0100 | A4 | Умножение акк. на рег.В (результат в B,А) |
XCH A,Rn | 1100 1rrr | C8…CF | Обмен акк. с регистром |
ANL A,Rn | 0101 1rrr | 58…5F | Лог. умножение акк. и рег.(результат в А) |
ORL A,Rn | 0100 1rrr | 48…4F | Лог. сложение акк. и рег.(результат в А) |
Выполните приведенные команды, предварительно занеся в аккумулятор (А) и соответствующий регистр (Rn) конкретные значения. Результаты выполнения команд занесите в отчет.
5. Команды обращения к портам ввода/вывода.
В этих командах используется прямая адресация.
-
Запись вручную. Выполните обращение к порту 1 следующим образом:
-
Используя движковые переключатели, установите все разряды порта 1 в единичное состояние (индикаторы светятся).
-
Нажмите кнопку «DM».
-
Введите по адресу 90 (адрес порта 1) произвольное число.
-
Нажмите кнопку «+1».
-
Проследите за изменением разрядов порта 1 (индикаторов).
-
Повторите эту процедуру несколько раз с различными значениями данных.
5.2. Загрузка порта 1 содержимым аккумулятора.
Команда | Структура | Код |
MOV ad,A | 1111 0101 | F5 |
ad | 90 |
-
Установите движковые переключатели (входы порта 1) в нижнее положение (светодиодные индикаторы светятся).
-
Загрузите в аккумулятор произвольное число.
-
Выполните команду пошаговом режиме.
-
Проконтролируйте состояние разрядов порта 1 по световым индикаторам.
-
Повторите эту процедуру несколько раз с различными значениями данных.
5.3. Пересылка константы по прямому адресу. В данном случае константа загружается в порт 1.
Команда | Структура | Код |
MOV ad,#d | 0111 0101 | 75 |
ad | 90 | |
#d | Любое число. | XX |
-
Установите движковые переключатели (входы порта 1) в нижнее положение (светодиодные индикаторы светятся).
-
Загрузите команду с 1000 адреса.
-
Запишите в 3-й байт команды произвольное число (ХХ).
-
Выполните команду пошаговом режиме.
-
Проконтролируйте состояние разрядов порта 1 по световым индикаторам.
-
Повторите эту процедуру несколько раз с различными значениями данных.
Загрузка порта 1 содержимым порта 2.
6. Команды операций с битами.
Выполните приведенные ниже команды управления разрядом переноса С (рис.1).
6.1 Установка разряда переноса
Команда | Структура | Код |
SET B,C | 1101 0011 | D3 |
Проверьте наличие единицы в 7р регистра флагов (СПП).
6.2. Сброс разряда переноса.
Команда | Структура | Код |
CLR C | 1100 0011 | C3 |
Проверьте наличие нуля в 7р регистра флагов (СПП).
7. Пример программы.
Введите приведенную ниже программу, занося в соответствующие ячейки памяти необходимые коды команд. Введите в аккумулятор произвольное число. Запустите программу с 1000 ячейки памяти, используя кнопку “ST”. Нажимая кнопку “ST”, проконтролируйте изменение содержимого аккумулятора с помощью индикаторов порта 1.
Команда | Структура | Код |
1000 | INC A | 04 |
1001 | MOV 90,A | F5 |
1002 | 90 | |
1003 | LJMP 1000 | 02 |
1004 | 10 | |
1005 | 00 |
17