Скачиваний:
13
Добавлен:
01.05.2014
Размер:
60.42 Кб
Скачать

Санкт-Петербургский государственный электротехнический университет

Кафедра ВТ

Микропроцессорные системы

Отчет по лабораторной работе №3

Вариант 1

Выполнили: Попов А.

Таранюк М.

Гр.2372

Проверила: Головина Л.К.

Санкт-Петербург

2006

Таблица истинности

y =

x1

x2

X3

x4

y

0

0

0

0

0

0

0

0

1

1

0

0

1

0

0

0

0

1

1

0

0

1

0

0

0

0

1

0

1

1

0

1

1

0

0

0

1

1

1

0

1

0

0

0

0

1

0

0

1

1

1

0

1

0

0

1

0

1

1

1

1

1

0

0

0

1

1

0

1

1

1

1

1

0

0

1

1

1

1

0

1.Вычисление логической функции с помощью команд байтовых поразрядных логических операций.

С помощью логических функций производим вычисления:

punkt1:

mov a,r1

cpl a

anl a,#01h

mov r1,a

mov a,r2

cpl a

anl a,#01h

mov r2,a

mov a,r0

anl a,r1

orl a,r2

anl a,r3

mov r4,a

jmp IDLE

2. Использование команд условных переходов.

Построив логическое дерево, реализуем его в коде:

punkt2:

mov a,r0

rrc a

jnc x10

jc x11

x10:

mov a,r2

rrc a

jnc x10x30

jc x10x31

x10x30:

mov a,r3

rrc a

jnc x10x30x40

jc x10x30x41

x10x31:

mov r4,#0h

jmp xEnd

x10x30x40:

mov r4,#0h

jmp xEnd

x10x30x41:

mov r4,#1h

jmp xEnd

x11:

mov a,r1

rrc a

jnc x11x20

jc x11x21

x11x20:

mov a,r3

rrc a

jnc x11x20x40

jc x11x20x41

x11x20x40:

mov r4,#0h

jmp xEnd

x11x20x41:

mov r4,#1h

jmp xEnd

x11x21:

mov a,r2

rrc a

jnc x11x21x30

jc x11x21x31

x11x21x30:

mov a,r3

rrc a

jnc x11x21x30x40

jc x11x21x30x41

x11x21x30x40:

mov r4,#0h

jmp xEnd

x11x21x30x41:

mov r4,#1h

jmp xEnd

x11x21x31:

mov r4,#0h

jmp xEnd

xEnd:

jmp IDLE

3.Табличный способ.

Используя таблицу истинности, получаем:

punkt3:

// tablichnii sposob

mov a,r0

rl a

rl a

rl a

mov r0,a

mov a,r1

rl a

rl a

mov r1,a

mov a,r2

rl a

mov r2,a

mov a,#0h

add a,r0

add a,r1

add a,r2

add a,r3 //schitaem nomer stroki po kotoromu legit otvet

jnz NeNol

mov dptr,#30h //esli nomer=0 to zapisivaem otvet

movx a,@dptr

anl a,#1h

mov r4,a

jmp NolEnd

NeNol:

mov r0,a //elsi nomer ne raven 0, to smotrim po kakomu adresu ego iskt'

subb a,#08h // esli nomer<8 - 1 addr, esli nomer>8 - 2 addr

jc Ad0

jnc Ad1

Ad0:

mov a,r0

mov r1,a

mov r0,#30h

jmp AdEnd

Ad1:

mov r1,a

mov r0,#31h

jmp AdEnd

AdEnd:

mov a,@r0

Sdvig:

rr a //sdvigaem i nahodim otvet

djnz r1,Sdvig

anl a,#01h

jz A0

jnz A1

A0:

mov r4,#0h

jmp NolEnd

A1:

mov r4,#1h

jmp NolEnd

NolEnd:

jmp IDLE

4.Использование команд битовых операций.

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

punkt4:

// bitovii operacii

mov 20h,#00h

mov 21h,#00h

mov 22h,#00h

mov 23h,#00h

mov 24h,#00h

mov 25h,#00h

mov 26h,#00h

mov 27h,#00h //obnulaem pamiat' chtobi ne bilo oshibok

clr c

mov a,r0

jz rx00

jnz rx01

rx01:

setb c

jmp rx0r

rx00:

clr c

jmp rx0r

rx0r:

mov 10h,c //zapisivaem 1-ii bit

clr c

mov a,r1

jz rx10

jnz rx11

rx11:

setb c

jmp rx1r

rx10:

clr c

jmp rx1r

rx1r:

mov 11h,c //zapisivaem 2-ii bit

clr c

mov a,r2

jz rx20

jnz rx21

rx21:

setb c

jmp rx2r

rx20:

clr c

jmp rx2r

rx2r:

mov 12h,c //zapisivaem 3-ii bit

clr c

mov a,r3

jz rx30

jnz rx31

rx31:

setb c

jmp rx3r

rx30:

clr c

jmp rx3r

rx3r:

mov 13h,c //zapisivaem 4-ii bit

mov c,11h

cpl c

mov 11h,c

mov c,12h

cpl c

mov 12h,c

mov c,10h //logika operacii vziata iz 1-go punkta

anl c,11h

orl c,12h

anl c,13h

mov 14h,c

mov a,22h

anl a,#10h

jz LC0

jnz LC1

LC1:

mov r4,#01h

jmp pEnd

LC0:

mov r4,#00h

jmp pEnd

pEnd:

jmp IDLE

6

Соседние файлы в папке Лабораторная работа 3