Материал: kniga_mikroprotsessory

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

*запись «;(A)=55H, (DPTR)=1234H, в ВПД с=11H» означает, что до момента выполнения команды в аккумуляторе (А) содержится число 55Н, в регистре (DPTR)-число 1234H, в ячейке внешней памяти данных с адресом (1234H) содержится число 11H

**на данном этапе происходит выполнение команды (по нажатию клавиши F10)

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

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

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

2.Систематизация команд пересылки данных по способу адресации.

3.Файл с результатами выполнения работы.

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

1.Перечислите команды пересылки в пределах резидентского ЗУПД.

2.Перечислите команды пересылки за пределами резидентского ЗУПД.

3.Перечислите команды обмена.

4.Перечислите команды прямой и косвенной адресации.

62

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

Тема: Программирование арифметических и логических операций,

битовых операций на языке ассемблер МК-51

Цель работы: изучение программирования арифметических и логических

операций микро-ЭВМ МК-51.

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

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

ADD A,Rn ;где n=0-7

0 0 1 0 1 r r r

где rrrB=000B-111B

 

 

 

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

и 3 результата устанавливаются в "1" флаг переноса C и флаг дополнительного переноса AC соответственно, в противном случае эти флаги сбрасываются в

"0". Флаг переполнения OV устанавливается, если есть перенос из бита 6 и нет переноса из бита 7, или есть перенос из бита 7 и нет - из бита 6, в противном случае флаг OV сбрасывается. Время выполнения команды 1 цикл.

 

Алгоритм

 

Пример

 

 

 

 

 

 

 

 

 

 

;(A)=0C3H, (R6)=0AAH

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

 

 

 

(С) x,

(OV) =x,

(AC) =x,

где

ADD A,R6 ;(A)=6DH,(R6)=0AAH,

x {0,1}

 

 

 

;(AC)=0, (C)=1, (OV)=1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 0 1 0 0 1 1 i

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

 

 

 

Команда "сложение" складывает содержимое аккумулятора A с содержимым ячейки резидентной памяти данных (РПД), адресуемой содержимым заданного регистра Ri выбранного банка. Результат размещается в A. Содержимое

используемой ячейки не изменяется. Логика установки (сброса) флагов и время

63

выполнения такие же, как у рассмотренной выше команды с аналогичной мнемоникой.

Алгоритм

Пример

 

 

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

;(A)=95H, (R1)=31H,

(С) x, (OV) =x, (AC) =x, где x {0,1}

;в РПД (31H)=4CH

 

ADD A,@R1 ;(A)=0E1H, (C)=0,

 

;(AC)=1, (OV)=0, (31H)=4CH

 

 

ADD A,direct

0 0 1 0 0 1 0 1

direct

 

 

 

Команда "сложение" складывает содержимое аккумулятора A с содержимым ячейки резидентной памяти данных (либо регистра специальных функций), 8-

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

Алгоритм

Пример

 

 

(A) (A)+(direct)

;(A)=77H, (P1)=0FFH

(С) x, (OV) =x, (AC) =x, где x {0,1}

ADD A,P1 ;(A)=76H,

 

;(AC)=1, (C)=1, (OV)=0

 

;(P1)=0FFH

 

 

ADD A,#data8

0 0 1 0 0 1 0 0

data8

 

 

 

Команда "сложение" складывает содержимое аккумулятора A с байтом данных data8, непосредственно указанным в команде. Результат размещается в A.

Логика установки (сброса) флагов и время выполнения такие же, как у рассмотренной выше команды с аналогичной мнемоникой.

64

Алгоритм

Пример

 

 

 

;(A)=09H

(A) (A)+data8

 

(С) x, (OV) =x, (AC) =x, где x {0,1}

ADD A,#0D3H ;(A)=0DCH,

 

;(AC)=0, (C)=0, (OV)=0

 

 

ADDC A,Rn ;где n=0-7

0 0 1 1 1 r r r

где rrrB=000B-111B.

 

 

 

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

и 3 результата устанавливаются в "1" флаг переноса C и флаг дополнительного переноса AC соответственно, в противном случае эти флаги сбрасываются в

"0". Флаг переполнения OV устанавливается, если есть перенос из бита 6 и нет переноса из бита 7, или есть перенос из бита 7 и нет - из бита 6, в противном случае флаг OV сбрасывается. Время выполнения команды 1 цикл.

 

Алгоритм

 

 

Пример

 

 

 

 

 

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

 

 

;(A)=0B2H, (R3)=99H, (C)=1

(С) x,

(OV) =x,

(AC) =x,

где

ADDC A,R3 ;(A)=4CH,(R3)=99H,

x {0,1}

 

 

 

 

;(AC)=0, (C)=1, (OV)=1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 0 1 1 0 1 1 i

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

 

 

 

 

Команда "сложение с переносом" одновременно складывает содержимое аккумулятора A, содержимое флага переноса C и содержимое ячейки резидентной памяти данных (РПД), адресуемой содержимым заданного регистра Ri выбранного банка. Результат помещается в A. Содержимое используемой ячейки не изменяется. Логика установки (сброса) флагов и время выполнения такие же, как у рассмотренной выше команды с аналогичной мнемоникой.

65

Алгоритм

 

 

Пример

 

 

 

 

 

 

 

 

 

 

 

;(A)=0D5H, (R0)=3AH,

 

 

(A) (A)+(C)+((Ri)), где i

{0,1}

 

 

 

 

 

(С) x, (OV) =x, (AC) =x, где x {0,1}

;в РПД (3AH)=1AH, (C)=1

 

 

 

ADDC A,@R0 ;(A)=0F0H,

 

 

 

;(AC)=1, (C)=0, (OV)=0,

 

 

 

 

 

;(3AH)=1AH

 

 

 

 

 

 

 

 

 

ADDC A,direct

 

 

 

 

 

 

 

 

0 0 1 1 0 1 0 1

 

direct

 

 

 

 

 

 

 

Команда "сложение с переносом" одновременно складывает содержимое аккумулятора A, содержимое флага переноса C и содержимое ячейки резидентной памяти данных (либо регистра специальных функций), 8-

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

Алгоритм

Пример

 

 

(A) (A)+(C)+(direct)

;(A)=11H, (C)=1,

(С) x, (OV) x, (AC) x,

;(DPH)=0DFH

где x {0,1}

ADDC A,DPH ;(A)=0F1H,

 

;(AC)=1, (C)=0, (OV)=0,

 

;(DPH)=0DFH

 

 

ADDC A,#data8

0 0 1 1 0 1 0 0

data8

 

 

 

Команда "сложение с переносом" одновременно складывает содержимое аккумулятора A, содержимое флага переноса C и байт данных data8,

непосредственно указанный в команде. Результат размещается в A. Логика установки (сброса) флагов и время выполнения такие же, как у рассмотренной выше команды с аналогичной мнемоникой.

66

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