Постановка задания для проектирования
выполнить операцию логического сложения над числами находящимися в аккумуляторе и регистре общего назначения, установить единицу в один из разрядов и результат загрузить в регистр общего назначения.
4.
Специальная часть
Выбор и описание способов адресации
Когда производится прямая 9-битная адресация, младшие 7 бит берутся как прямой адрес из кода операции, а два бита указателя страниц (RP1, RP0) из регистра статуса, как показано на рис. 1
Рисунок 1
Признаком косвенной адресации является обращение к регистру INDF. Любая команда, которая использует INDF (адрес 00h) в качестве регистра фактически обращается к указателю, который хранится в FSR (адрес 04h). Чтение косвенным образом самого регистра INDF даст результат 00h. Запись в регистр INDF косвенным образом будет выглядеть как NOP, но биты статуса могут быть изменены. Необходимый 9-битный адрес формируется объединением содержимого 8-битного FSR регистра и бита IRP из регистра статуса (рис. 1).
Для реализации технического задания на курсовое проектирование была выбрана прямая адресация.
Разработка программы в соответствии с заданием
Для реализации поставленной задачи , разработана программа, листинг которой, представлен ниже.
Листинг программы.
MOV LW 3ch - загрузили в аккаумулятор первое число
MOV WF 21H - (W) -> FW - переслать w в f
MOV LW 2CH - W <- 2CH - загрузили в аккаумулятор второ число
IORWF 21H - (W) v (F(21))-результат загружается в регистр с адресом 21
BSF '21','05' - установить 1 в 5 бит F(1)
END
5.
Для реализации данной программы используются следующие команды: 1) MOVLW- переслать константу в w. | |
Код | 11 0000 1111 1111 (1 -константа) |
Синтаксис - | MOVLW k |
Операнды - | 0<= k<=255 |
Операция - | k (w) |
Описание - | 8-битная константа загружается в регистр w |
Циклы - | |
Пример - | MOVLW 0х5А после: w~0x5A |
2) MOVWF- переслать w в f. | |
Код | 00 0000 lfffffff(f-номер регистра) |
Синтаксис - | MOVWF f |
Операнды - | 0<=f<=127 |
Операция - | (w) (f) |
Описание - | данные из w в регистр f |
Циклы - | |
Пример - | MOVWF OPTION REG |
До: | OPTION=OxFF |
W=0x4F | |
После: | OPTION=Ox4F |
W=0x4F | |
IORWF 21H - РЕЗУЛЬТАТ ЗАГРУЖАЕТСЯ В РЕГИСТР С АДРЕСОМ 21 | |
Код | 0001 00da ffff ffff(1 -константа) |
Синтаксис - | IORWF f,d,a |
Операнды - | 0 <= f <= 255 |
d Е [0,1] | |
a Е [0,1] | |
Операция - | k (w) |
Описание - | Логическая опрерация поразрядного сложения ИЛИ регистров W и f. Если d=0, тогда результат сохраняется в W регистр, если d=1, тогда результат сохраняется в регистре f (по умолчанию). Значение бита доступа к памяти a обрабатывается стандартным образом (по умолчанию a=1) |
Циклы - | |
Пример - | IORWF RESULT, 0, 1 |
Перед выполнением: | RESULT = 0х13 |
W = 0x91 |
6. BSF '21','05' - УСТАНОВИТЬ 1 В 5 БИТ (1) | |
Код | 1000 bbba ffff ffff |
Синтаксис | BSF f,d,a |
Операнды | 0 <=f <= 255 |
0 <= b <=7 | |
a Е [0,1] | |
Операция | 1 -> f |
Описание | Установка бита b в регистре f. Значение бита доступа к памяти a обрабатывается стандартным образом (по умолчанию a=1) |
Циклы | |
Пример | BSF FLAG_REG, 7 |
Перед выполнением: | FLAG_REG = 0x0A |
После выполнения: | FLAG_REG = 0x8A |
7.