Материал: kniga_mikroprotsessory

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

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

Алгоритм

 

 

 

Пример

(direct) (A)

 

;(A)=3CH, (B)=4DH

 

 

 

MOV B,A

 

 

 

 

;(A)=3CH,(B)=3CH

 

MOV direct,Rn ;где n=0-7

 

 

 

где rrrB=000-111B.

1 0 0 0 1 r r r

 

direct

Команда "переслать байт" пересылает содержимое заданного регистра Rn выбранного банка в ячейку, адрес которой определяется символическим именем direct в области резидентной памяти данных или в среде регистров специальных функций. При этом содержимое Rn не изменяется. Команда на состояние флагов не влияет и имеет время выполнения 2 циклa.

Алгоритм

 

 

 

Пример

 

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

 

;(R7)=5EH, (P1)=0FFH

 

 

 

MOV P1,R7

 

 

 

 

;(R7)=5EH, (P1)=5EH

 

MOV direct,direct

 

 

 

 

1 0 0 0 0 1 0 1

 

direct

direct

Команда "переслать байт" пересылает байт данных между двумя ячейками, расположенными в области резидентной памяти данных (РПД) или (и) в среде регистров специальных функций. Адрес ячейки-источника (ячейки-приемника) определяется вторым (первым) операндом и размещается во втором (в третьем) байте команды. Необходимо отметить, что при пересылке содержимое ячейкиисточника не изменяется. Команда на состояние флагов не влияет и выполняется за 2 циклa.

Алгоритм

 

Пример

 

 

(direct) (direct)

;в РПД (4CH)=7AH, (B)=0F4H

 

MOV 4CH,B

 

 

 

;(B)=0F4H, в РПД (4CH)=0F4H

MOV direct,@Ri ;где i {0,1}

 

 

 

 

 

 

1 0 0 0 0 1 1 i

 

direct

Команда "переслать байт" пересылает содержимое ячейки резидентной памяти данных (РПД), адресуемой содержимым заданного регистра Ri выбранного банка, в ячейку, адрес которой определяется символическим именем direct в области РПД или в среде регистров специальных функций. При этом содержимое ячейки-источника не изменяется. Команда на состояние флагов не влияет и имеет время выполнения 2 цикла.

57

;(P2)=33H
MOV @Ri,A ;где i {0,1} 1 1 1 1 0 1 1 i
Команда "переслать байт" пересылает содержимое аккумулятора A в ячейку резидентной памяти данных (РПД), адресуемую содержимым заданного регистра Ri выбранного банка, при этом содержимое A не изменяется. Команда на состояние флагов не влияет и имеет время выполнения 1 цикл.
Алгоритм Пример
((Ri)) (A), где i {0,1} ;(A)=11H, (R1)=25H, в РПД (25H)=48H
MOV @R1,A
;(A)=11H, (R1)=25H, в РПД (25H)=11H
MOV @Ri, direct ;где i {0,1} 1 0 1 0 0 1 1 i direct
Команда "переслать байт" загружает ячейку резидентной памяти данных (РПД), адресуемую содержимым заданного регистра Ri выбранного банка, содержимым ячейки, адрес которой определяется символическим именем direct в области РПД или в среде регистров специальных функций. При этом содержимое ячейки-источника не изменяется. Команда на состояние флагов не влияет и имеет время выполнения 2 цикла.
Алгоритм Пример
((Ri)) (direct), где i {0,1} ;в РПД (55H)=31H, (R0)=55H, (TH1)=0CDH
MOV @R0,TH1
;(TH1)=0CDH, (R0)=55H, в РПД (55H)=0CDH
;(P2)=0FFH
MOV P2,#33H

Алгоритм

 

 

 

Пример

 

 

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

 

;в РПД (6FH)=57H, (R0)=6FH,

 

 

(PSW)=0C2H

 

 

 

 

MOV PSW,@R0

 

 

 

 

;(PSW)=57H, ;(R0)=6FH, в РПД

 

 

(6FH)=57H

 

 

 

MOV direct,#data8

 

 

 

 

 

0 1 1 1 0 1 0 1

 

direct

data8

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

Алгоритм Пример

(direct) data8

MOV @Ri,#data8 ;где i {0,1}

0 1 1 1 0 1 1 i

data8

58

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

Алгоритм

 

Пример

 

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

 

;(R1)=53H, в РПД (53H)=86H

 

 

 

MOV @R1,#77H

 

 

 

;(R1)=53H, в РПД (53H)=77H

 

MOV C,bit

 

 

 

 

1 0 1 0 0 0 1 0

 

bit

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

Алгоритм

Пример

 

(C) (bit)

;(C)=0, (P1[4])=1

 

 

 

MOV C,P1.4

 

 

 

;(C)=1, (P1[4])=1

 

MOV bit,C

 

 

 

 

 

1 0 0 1 0 0 1 0

 

bit

Команда "переслать бит" копирует содержимое флага переноса C в бит, 8- разрядный адрес которого определяется символическим именем bit в области ячеек резидентной памяти данных (РПД) или регистров специальных функций, допускающей побитовое обращение. Команда имеет время выполнения 2 цикла и на состояние флагов не влияет, за исключением случая, когда флаг является операндом-приемником.

Алгоритм

 

 

Пример

 

 

(bit) (C)

 

;в РПД (22H)=0D0H, (C)=1

 

 

MOV 10H,C

 

 

 

 

;(C)=1, в РПД (22H)=0D1H

MOV DPTR,#data16

 

 

 

 

1 0 0 1 0 0 0 0

data16[15-8]

data16[7-0]

Команда "переслать два байта" загружает указатель данных DPTR 16-битовой константой data16, непосредственно указанной в команде, причем содержимое второго и третьего байтов команды загружается соответственно в старший (DPH) и младший (DPL) байты DPTR. Команда на флаги не влияет и имеет время выполнения 2 цикла.

Алгоритм

Пример

(DPTR) data16

;(DPH)=23H, (DPL)=0DFH

 

MOV DPTR,#1234H

 

;(DPH)=12H, (DPL)=34H

59

MOVC A,@A+DPTR

1 0 0 1 0 0 1 1

Команда "переслать байт" загружает аккумулятор A содержимым ячейки памяти программ (ПП), причем адрес используемой ячейки вычисляется как сумма исходного содержимого A и содержимого 16-битового указателя данных DPTR. Таким образом, в указанной пересылке может участвовать любая ячейка из памяти программ объемом до 64 Кбайт. Содержимое DPTR не изменяется. Команда на состояние флагов не влияет и имеет время выполнения 2 цикла.

Алгоритм

 

Пример

 

(A) ((A)+(DPTR))

;(A)=01H, (DPTR)=30FFH, в ПП

 

 

(3100H)=22H

 

 

MOVC A,@A+DPTR

 

 

;(A)=22H, ;(DPTR)=30FFH

 

MOVC A,@A+PC

 

 

 

1 0 0 0 0 0 1 1

 

Команда "переслать байт" загружает в аккумулятор A содержимое ячейки памяти программ (ПП), причем адрес используемой ячейки вычисляется как сумма исходного содержимого A и содержимого программного счетчика PC, которое увеличено на единицу. Таким образом, в указанной пересылке может участвовать любая ячейка из памяти программ объемом до 64 Кбайт. Команда на состояние флагов не влияет и имеет время выполнения 2 цикла.

Алгоритм

 

Пример

(A) ((A)+(PC)+1)

;(A)=11H, (PC)=2300H, в ПП

 

(2312H)=44H

 

MOVC A,@A+PC

 

;(A)=44H, (PC)=2301H

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

 

 

 

1 1 1 0 0 0 1 i

Команда "переслать байт" выполняет загрузку аккумулятора A содержимым ячейки внешней памяти данных (ВПД), адресуемой содержимым заданного регистра Ri выбранного банка, при этом содержимое используемой ячейки не изменяется. Команда на состояние флагов не влияет, имеет время выполнения 2 цикла и обеспечивает доступ к ВПД объемом до 256 байт.

Алгоритм

Пример

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

;(A)=0CCH, (R0)=44H, в ВПД (44H)=3EH

 

 

MOVX A,@R0

 

 

;(A)=3EH, (R0)=44H, в ВПД (44H)=3EH

MOVX A,@DPTR

 

 

 

1 1 1 0 0 0 0 0

Команда "переслать байт" выполняет загрузку аккумулятора A содержимым ячейки внешней памяти данных (ВПД), адресуемой содержимым 16-битового указателя данных DPTR, при этом содержимое используемой ячейки не изменяется. Команда на состояние флагов не влияет, имеет время выполнения 2 цикла и обеспечивает доступ к ВПД объемом до 64 Кбайт.

60

Алгоритм

Пример

(A) ((DPTR))

;(A)=76H, (DPTR)=6D44H, в ВПД

 

 

(6D44H)=88H

 

 

MOVX A,@DPTR

 

 

;(DPTR)=6D44H, (A)=88H, в ВПД

 

 

(6D44H)=88H

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

 

 

 

1 1 1 1 0 0 1 i

Команда "переслать байт" копирует содержимое аккумулятора A в ячейку внешней памяти данных (ВПД), адресуемую содержимым заданного регистра Ri выбранного банка. Команда на состояние флагов не влияет, имеет время выполнения 2 цикла и обеспечивает доступ к ВПД объемом до 256 байт.

Алгоритм

Пример

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

;(A)=0C6H, (R1)=22H, в ВПД (22H)=33H

 

 

MOVX @R1,A

 

 

;(A)=0C6H, (R1)=22H, в ВПД (22H)=0C6H

MOVX @DPTR,A

 

 

 

1 1 1 1 0 0 0 0

Команда "переслать байт" копирует содержимое аккумулятора A в ячейку внешней памяти данных (ВПД), адресуемую содержимым 16-битового указателя данных DPTR. Команда на состояние флагов не влияет, имеет время выполнения 2 цикла и обеспечивает доступ к ВПД объемом до 64 Кбайт.

Алгоритм

Пример

((DPTR)) (A)

;(A)=55H, (DPTR)=1234H, в ВПД

 

(1234H)=11H;

 

MOVX @DPTR,A

 

;(DPTR)=1234H, (A)=55H, в ВПД

 

(1234H)=55H

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

Изучить команды передачи данных и выполнить примеры, приведенные

для каждой команды при помощи симулятора, сохранить результаты в файл.

Примеры приведены в следующем формате

Пример

;состояние регистров и ячеек памяти до выполнения команды* КОМАНДА (этап выполнения)** ;состояние регистров и ячеек памяти после выполнения команды***

61

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