Реферат : Лабораторные по информатике (работа 1) 


Полнотекстовый поиск по базе:

Главная >> Реферат >> Информатика, программирование


Лабораторные по информатике (работа 1)




A51 MACRO ASSEMBLER  78                                                                     24/12/01 13:46:28 PAGE     1


DOS MACRO ASSEMBLER A51 V5.10
OBJECT MODULE PLACED IN 78.OBJ
ASSEMBLER INVOKED BY: M:\KEILTEST\BIN\A51.EXE 78.A51 DB EP

LOC  OBJ            LINE     SOURCE

                       1             NAME P78
----                   2             CSEG AT 0H
0000                   3             ORG 0H
0000 7A03              4             MOV R2, #3
0002 75F0A7            5             MOV B, #167
0005 E590              6             MOV A, P1
0007 FB                7             MOV R3, A
0008 7C87              8     M1:     MOV R4, #135
000A EA                9             MOV A, R2
000B F5A0             10             MOV P2, A
                      11            
000D 00               12     M2:     NOP
000E DCFD             13             DJNZ R4, M2
0010 E590             14             MOV A, P1
0012 9B               15             SUBB A, R3
0013 400B             16             JC M3
0015 E590             17             MOV A, P1
0017 FB               18             MOV R3, A
0018 0A               19             INC R2
0019 0A               20             INC R2
001A 0A               21             INC R2
001B D5F0EA           22             DJNZ B, M1
001E 0132             23             AJMP M5
0020 7C87             24     M3:     MOV R4, #135
0022 C3               25             CLR C
0023 1A               26             DEC R2
0024 EA               27             MOV A, R2
0025 F5A0             28             MOV P2, A
                      29             
0027 00               30     M4:     NOP
0028 DCFD             31             DJNZ R4, M4
002A E590             32             MOV A, P1
002C 9B               33             SUBB A, R3
002D E590             34             MOV A, P1
002F FB               35             MOV R3, A
0030 40EE             36             JC M3
0032 00               37     M5:     NOP
                      38             END
                             

A51 MACRO ASSEMBLER  78                                                                     24/12/01 13:46:28 PAGE     2

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

B. . . . . . . . .  D ADDR   00F0H   A   
M1 . . . . . . . .  C ADDR   0008H   A   
M2 . . . . . . . .  C ADDR   000DH   A   
M3 . . . . . . . .  C ADDR   0020H   A   
M4 . . . . . . . .  C ADDR   0027H   A   
M5 . . . . . . . .  C ADDR   0032H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
P2 . . . . . . . .  D ADDR   00A0H   A   
P78. . . . . . . .  N NUMB   -----       


REGISTER BANK(S) USED: 0 


ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)
	NAME P7.8
	CSEG AT 0H
	ORG 0H
	MOV R2, #3
	MOV B, #167
	MOV A P1
	MOV R3, A
M1:	MOV R4, #135
	MOV A, R2
	MOV P2, A
	SETB 3.7
	CLR 3.7
	SETB 3.7
M2:	NOP
	DJNZ R4, M2
	MOV A, P1
	SUBB A, R3
	JC M3
	MOV A, P1
	MOV R3, A
	INC R2
	INC R2
	INC R2
	DJNZ B, M1
	AJMP M5
M3:	MOV R4, #135
	CLR C
	DEC R2
	MOV A, R2
	MOV P2, A
	SETB 3.7
	CLR 3.7
	SETB 3.7
M4:	NOP
	DJNZ R4, M4
	MOV A, P1
	SUBB A, R3
	MOV A, P1
	MOV R3, A
	JC M3
M5:	NOP
	END
A51 MACRO ASSEMBLER  78                                                                     24/12/01 13:46:28 PAGE     1


DOS MACRO ASSEMBLER A51 V5.10
OBJECT MODULE PLACED IN 78.OBJ
ASSEMBLER INVOKED BY: M:\KEILTEST\BIN\A51.EXE 78.A51 DB EP

LOC  OBJ            LINE     SOURCE

                       1             NAME P78
----                   2             CSEG AT 0H
0000                   3             ORG 0H
0000 7A03              4             MOV R2, #3
0002 75F0A7            5             MOV B, #167
0005 E590              6             MOV A, P1
0007 FB                7             MOV R3, A
0008 7C87              8     M1:     MOV R4, #135
000A EA                9             MOV A, R2
000B F5A0             10             MOV P2, A
                      11            
000D 00               12     M2:     NOP
000E DCFD             13             DJNZ R4, M2
0010 E590             14             MOV A, P1
0012 9B               15             SUBB A, R3
0013 400B             16             JC M3
0015 E590             17             MOV A, P1
0017 FB               18             MOV R3, A
0018 0A               19             INC R2
0019 0A               20             INC R2
001A 0A               21             INC R2
001B D5F0EA           22             DJNZ B, M1
001E 0132             23             AJMP M5
0020 7C87             24     M3:     MOV R4, #135
0022 C3               25             CLR C
0023 1A               26             DEC R2
0024 EA               27             MOV A, R2
0025 F5A0             28             MOV P2, A
                      29             
0027 00               30     M4:     NOP
0028 DCFD             31             DJNZ R4, M4
002A E590             32             MOV A, P1
002C 9B               33             SUBB A, R3
002D E590             34             MOV A, P1
002F FB               35             MOV R3, A
0030 40EE             36             JC M3
0032 00               37     M5:     NOP
                      38             END
                             

A51 MACRO ASSEMBLER  78                                                                     24/12/01 13:46:28 PAGE     2

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

B. . . . . . . . .  D ADDR   00F0H   A   
M1 . . . . . . . .  C ADDR   0008H   A   
M2 . . . . . . . .  C ADDR   000DH   A   
M3 . . . . . . . .  C ADDR   0020H   A   
M4 . . . . . . . .  C ADDR   0027H   A   
M5 . . . . . . . .  C ADDR   0032H   A   
P1 . . . . . . . .  D ADDR   0090H   A   
P2 . . . . . . . .  D ADDR   00A0H   A   
P78. . . . . . . .  N NUMB   -----       


REGISTER BANK(S) USED: 0 


ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)
	NAME P7.8
	CSEG AT 0H
	ORG 0H
	MOV R2, #3
	MOV B, #167
	MOV A P1
	MOV R3, A
M1:	MOV R4, #135
	MOV A, R2
	MOV P2, A
	SETB 3.7
	CLR 3.7
	SETB 3.7
M2:	NOP
	DJNZ R4, M2
	MOV A, P1
	SUBB A, R3
	JC M3
	MOV A, P1
	MOV R3, A
	INC R2
	INC R2
	INC R2
	DJNZ B, M1
	AJMP M5
M3:	MOV R4, #135
	CLR C
	DEC R2
	MOV A, R2
	MOV P2, A
	SETB 3.7
	CLR 3.7
	SETB 3.7
M4:	NOP
	DJNZ R4, M4
	MOV A, P1
	SUBB A, R3
	MOV A, P1
	MOV R3, A
	JC M3
M5:	NOP
	END

Микропроцессоры.

Отчет по лабораторным работам.

Лабораторная работа №1.

Задание.

Составить программу записи во все порты О ЭВМ чередующихся нулей и единиц. Например в порт Р0 записать число в двоичной форме 01010101, в порт Р1 - 10101010 и т.д. Затем необходимо инвертировать значения во всех портах, т.е. в Р0 - 10101010, в Р1 - 01010101 и т.д.

Структурная схема.

Подробная структурная схема.

P0←01010101; P1←10101010; P2←11001100; P3←11001101

A←P0

CPL A.

P0←A


A←P1

CPL A

P1←A


A←P2


CPL A


P2←A


A←P3

CPL A

P3←A


Загрузка данных в порты.

Пересылка в A содержимого портов.

Инвертирование данных в A.

Пересылка данных из А в порты.


Программа.

NAME S

название модуля программы для сборки

CSEG AT 0H

задание сегмента памяти программ с адреса 0Н

ORG 0000H

задание адреса начала программы с 9000Н

MOV P0,#01010101B

запись двоичного числа 01010101 в порт P0

MOV P1,#10101010B

запись двоичного числа 10101010 в порт P1

MOV P2,#11001100B

запись двоичного числа 11001100 в порт P2

MOV P3,#11001101B

запись двоичного числа 11001101 в порт P2

MOV A,P0

запись данных из порта P0 в аккумулятор

CPL A

инвертирование данных в аккумуляторе

MOV P0,A

запись данных из аккумулятора в порт Р0

MOV A,P1

запись данных из порта Р1 в аккумулятор

CPL A

инвертирование данных в аккумуляторе

MOV P1,A

запись данных из аккумулятора в порт Р1

MOV A,P2

запись данных из порта Р2 в аккумулятор

CPL A

инвертирование данных в аккумуляторе

MOV P2,A

запись данных из аккумулятора в порт P2

MOV A,P3

запись данных из порта P3 в аккумулятор

CPL A

инвертирование данных в аккумуляторе

MOV P3,A

запись данных из аккумулятора в порт P3

NOP

END

Контрольный пример.

В порты были введены числа в двоичном формате: в P0 - 01010101; в P1-10101010; в P2 - 11001100; в P3 – 11001101. При запуске отладчика программы эти числа были отображены в шестнадцатеричном виде: 55, AA, CC, CD соответственно. После выполнения программы эти значения были инвертированы: AA, 55, 33, 32 соответственно. Результаты совпали расчетными.

Лабораторная работа №2.

Задание.

Запустить программу, написанную в лабораторной работе №1 на отладочной плате.

Для работы с отладочной платой программа должна начинаться с адреса 9000h. Для этого необходим псевдооператор ORG 9000H. Для отображения выполнения программы на дисплее нужен оператор CALL 87bdh. Для контроля результатов необходимо записать полученные данные во внешнюю память, но считывание внешней памяти происходит с использованием портов 0 и 2, поэтому необходимо использовать только порты 1 и 3.

Структурная схема.

Загрузка данных в порты.

Пересылка в A содержимого портов.

Инвертирование данных в A.

Пересылка данных из А в порты.


Пересылка данных из портов через A в ячейки внутренней памяти.


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


Пересылка данных из A в ячейки внешней памяти.


нет


да


Подробная структурная схема.

P1←10101010; P3←11001101

A←P1

CPL A

P1←A

A←P3

21H←P1; 23H←P3

P1←01010101, P3←11001100

A←P1

CPL A

P1←A

20H←P1


A←P3


CPL A

P3←A

22H←P3


да


нет


R0←20H; DPTR←0; R5←10

M(DPTR)A

Подготовка следующих ячеек R0←R0H, DPTRDPTR+1

A←M(R0)


Программа.

NAME S

название модуля программы для сборки

CSEG AT 0H

задание сегмента памяти программ с адреса 0Н

ORG 9000H

задание адреса начала программы с 9000Н

MOV P1,#10101010B

запись двоичного числа 10101010 в порт P1

CALL 87bdh

MOV P3,#11001101B

запись двоичного числа 11001101 в порт P3

CALL 87bdh

MOV A,P1

запись данных из P1 в аккумулятор

CALL 87bdh

CPL A

инвертирование данных в аккумуляторе

CALL 87bdh

MOV P1,A

запись данных из аккумулятора в порт Р1

CALL 87bdh

MOV A,P3

запись данных из порта P3 в аккумулятор

CALL 87bdh

CPL A

инвертирование данных в аккумуляторе

CALL 87bdh

MOV P3,A

запись данных из аккумулятора в порт Р3

CALL 87bdh

MOV 21H,P1

запись данных из порта P1 в ячейку памяти с адресом 21H

CALL 87bdh

MOV 23H,P3

запись данных из порта P3 в ячейку памяти с адресом 21H

CALL 87bdh

MOV P1,#01010101B

запись двоичного числа 01010101 в порт P1

CALL 87bdh

MOV A,P1

запись данных из порта P1 в аккумулятор

CALL 87bdh

CPL A

инвертирование данных в аккумуляторе

CALL 87bdh

MOV P1,A

запись данных из аккумулятора в порт P1

CALL 87bdh

MOV 20H,P1

запись данных из порта P1 в ячейку памяти с адресом 20H

CALL 87bdh

MOV P3,#11001100B

запись двоичного числа 11001100 в порт P3

CALL 87bdh

MOV A,P3

запись данных из порта P1 в аккумулятор

CALL 87bdh

CPL A

инвертирование данных в аккумуляторе

CALL 87bdh

MOV P3,A

запись данных из аккумулятора в порт P3

CALL 87bdh

MOV 22H,P3

запись данных из порта P3 в ячейку памяти с адресом 20H

CALL 87bdh

MOV R0,#20H

в регистр R0 заносится операнд 20H

CALL 87bdh

MOV DPTR,#0

адресация внешней памяти

CALL 87bdh

MOV R5, #10

загрузка счетчика

CALL 87bdh

M1: MOV A,@R0

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

CALL 87bdh

MOVX @DPTR,A

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

CALL 87bdh

INC R0

увеличение адреса внутренней памяти на 1;

CALL 87bdh

INC DPTR

увеличение адреса внешней памяти на 1;

CALL 87bdh

DJNZ R5,M1

уменьшение счетчика на 1 и проверка его на 0, если его значение не равно 0, то переход на M1

CALL 87bdh

NOP

END

Контрольный пример.

В порты были введены числа в двоичном формате: в P0 - 01010101; в P1-10101010; в P2 - 11001100; в P3 – 11001101. На дисплее платы эти числа были отображены в шестнадцатеричном виде: 55, AA, CC, CD соответственно. После выполнения программы эти значения были инвертированы: AA, 55, 33, 32 соответственно и записаны в ячейки внешней памяти. Результаты совпали с расчетными.

Похожие работы: