Материал: kniga_mikroprotsessory

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
Пример
;(A)=0FH, (R4)=0F3H
XRL A,R4 ;(A)=0FCH, (R4)=0F3H

регистра Rn выбранного банка, помещая результат в A. При этом содержимое используемого регистра не изменяется. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.

Алгоритм

(A) (A) (Rn), где n=0-7

XRL A,@Ri ;где i {0,1}

0 1 1 0 0 1 1 i

 

 

Команда "логическое ИСКЛЮЧАЮЩЕЕ ИЛИ" выполняет поразрядное сложение по модулю 2 содержимого аккумулятора A с содержимым ячейки резидентной памяти данных (РПД), адресуемой содержимым заданного регистра Ri выбранного банка. Результат размещается в A. Содержимое используемой ячейки не изменяется. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.

 

 

Алгоритм

 

 

Пример

 

 

 

 

 

 

 

 

 

 

 

 

 

;(A)=22H, (R0)=55H,

 

 

(A)

(A)

((Ri)), где i {0,1}

 

 

 

 

 

 

 

 

 

 

;в РПД (55H)=33H

 

 

 

 

 

 

 

XRL A,@R0 ;(A)=11H,

 

 

 

 

 

;(R0)=55H, в РПД (55H)=33H

 

 

 

 

 

 

 

XRL A,direct

 

 

 

 

 

 

0 1 1 0 0 1 0 1

 

direct

 

 

 

 

 

 

 

 

 

Команда "логическое ИСКЛЮЧАЮЩЕЕ ИЛИ" выполняет поразрядное сложение по модулю 2 содержимого аккумулятора A с содержимым ячейки резидентной памяти данных (либо регистра специальных функций), 8-

разрядный адрес которой (которого) определяется символическим именем direct. Результат помещается в A. Содержимое используемой ячейки или используемого регистра не изменяется. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.

Алгоритм

Пример

 

 

87

Пример
;(A)=55H, (P2)=63H
XRL P2,A ;(A)=55H, (P2)=36H

(A) (A) (direct)

;(A)=23H, (PSW)=34H

 

XRL A,PSW ;(A)=17H, (PSW)=34H

 

 

XRL A,#data8

0 1 1 0 0 1 0 0

data8

 

 

 

Команда "логическое ИСКЛЮЧАЮЩЕЕ ИЛИ" выполняет поразрядное сложение по модулю 2 содержимого аккумулятора A с байтом данных data8,

непосредственно указанным в команде. Результат размещается в A. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.

Алгоритм

 

 

Пример

 

 

 

 

 

(A) (A) data8

 

;(A)=36H

 

 

 

 

XRL A,#22H ;(A)=14H

 

 

 

 

 

XRL direct,A

 

 

 

0 1 1 0 0 0 1 0

direct

 

 

 

 

 

Команда "логическое ИСКЛЮЧАЮЩЕЕ ИЛИ" выполняет поразрядное сложение по модулю 2 содержимого аккумулятора A с содержимым ячейки резидентной памяти данных (либо регистра специальных функций), 8-

разрядный адрес которой (которого) определяется символическим именем direct. Результат помещается соответственно в используемую ячейку или используемый регистр. Содержимое A не изменяется. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.

Алгоритм

(direct) (A) (direct)

XRL direct,#data8

0 1 1 0 0 0 1 1

direct

data8

 

 

 

 

Команда "логическое ИСКЛЮЧАЮЩЕЕ ИЛИ" выполняет поразрядное сложение по модулю 2 байта данных data8, непосредственно указанного в команде, с содержимым ячейки резидентной памяти данных (либо регистра специальных функций), 8-разрядный адрес которой (которого) определяется

88

символическим именем direct. Результат помещается соответственно в используемую ячейку или используемый регистр. Команда на состояние флагов не влияет и имеет время выполнения 2 цикла.

Алгоритм

Пример

 

 

(direct) (direct) data8

;(P1)=0FFH

 

XRL P1,#11H ;(P1)=0EEH

 

 

2.Задание на лабораторную работу.

1.Изучить группы команд арифметических и логических операций

2.Запустить программу AVSIM

3.Используя программу симулятора проверить выполнение команд,

приведенных в примерах, убедится в правильности их выполнения.

4. По заданию преподавателя составить одну из программ:

-суммирование многобайтных чисел;

-вычитание многобайтных чисел;

-перемножение однобайтовых чисел;

-деление многобайтного целочисленного числа на однобайтное.

Ввести программу в поле команд программы симулятора, проверить работу программы в пошаговом режиме, оценить результаты вычисления.

3.Содержание отчета

1.Результаты выполнения команд.

2.Ассемблерный листинг программы.

3.Результат выполнения программы.

4.Контрольные вопросы

1.Состав группы команд арифметических операций.

2.Состав группы команд логических операций.

3.Представление числа в дополнительном коде.

89

4.Алгоритм суммирования многобайтных чисел.

5.Алгоритм вычитания многобайтных чисел.

6.Алгоритм умножения многобайтных чисел.

7.Алгоритм деления многобайтных чисел.

90

Лабораторная работа №4

Тема: Программирование операций передачи управления, операций работы со стеком

Цель работы: изучение программирования микро-ЭВМ МК-51 с

использованием группы команд ветвления, передачи управления и команд

работы со стеком.

Указания по выполнению работы

1.Изучение команд передачи управления и работы со стеком

ACALL addr11

addr11[10-8] 1 0 0 0 1

addr11[7-0]

 

 

 

Команда "абсолютный вызов подпрограммы" вызывает безусловно подпрограмму, размещенную по адресу addr11. При этом содержимое счетчика команд PC увеличивается на 2 для получения адреса следующей команды,

после чего полученное 16-разрядное значение PC помещается в стек, и

содержимое указателя стека SP также увеличивается на 2. Адрес перехода образуется с помощью конкатенации (сцепления) 5-ти старших бит увеличенного содержимого счетчика команд PC, содержимого 7-5 битов старшего байта команды и содержимого второго байта команды. Адрес перехода и указанная команда должны находиться внутри одной страницы памяти программ (ПП) объемом 2 Кбайт, определяемой содержимым пяти старших бит PC. Время выполнения команды 2 цикла.

Алгоритм

Пример

(PC) (PC)+2, (SP) (SP)+1

;(SP)=07H, (PC)=28DH,

((SP)) (PC[7-0]), (SP) (SP)+1

;MT1 соответствует адресу ;345H в

((SP)) (PC[15-8])

ПП

(PC[10-0]) addr11[10-8] addr11[7-0],

ACALL MT1 ;(PC)=345H,

где есть знак конкатенации

;(SP)=09H,

;в РПД (09H)=02H, (08H)=8FH

 

91

Источник: https://studfile.net/preview/15934500/