258 259

258 259



258

Oto programt

0000

mi C, 27H

0012

JNZ OOOSH

0002

ŁXI H, 0021H

0015

mi a, o

0005

IN 0

0017

OUT 0

0007

KOV B, A '•

0019

JE? 0002H

0008

KOV A, B

001C

mi a, 1

0009

ANA U

001E

JKP 0017H

OOOA

JJSTJL H

0021

DOH

OOOB

CUP u

0022

COH

OOOC

JZ 001CH

0025'

47H

OOOF

one h

0024

05H

0010

M0V A, L

0025

28H

0011

CMP C

0026

00H

Program ten działa następująco: w komórkach pamięci 0021H    0026H umie

szczono parami bajt maskujący i liczbę porównywaną z zamaskowaną liczbą wejściową (w poprzedniej wersji programu pary te były umieszczone w drugich bajtach rozkazów ANI i CPI). Procesor pobiera z pamięci kolejne pary i sprawdza, czy wynik mnożenia logicznego liczby wejściowej przez bajt maskujący jest równy drugiemu bajtowi pary* Jeżeli tak, to na wyjście zostaje wysłana 1, jeżeli nie, to procesor sprawdza, czy wszystkie pary zostały już sprawdzone (procesor dokonuje tego porównując adres zawarty w rejestrze L z liczbą 27H). Jeżeli adres jest mniejszy od 27H, procesor pobiera i sprawdza następną parę, jeżeli adres jest równy 27H, znaczy to,że wszystkie próby zostały już wykonane i wszystkie z wynikiem negatywnym i procesor wysyła na wyjście sygnał 0* Wysłanie 0 lub 1 kończy obliczenie wartości funkcji dla danej liczby wejściowej ,x2 > • * * >x8 * Procesor wraca do początku programu wczytując nowe dane wejściowe.

Zwróćmy uwagę, że fragment programu pomiędzy adresami OOOSH a 0012H, który sprawdza wartość logiczną kolejnego składnika badanej funkcji, może być wykonywany kilkakrotnie w trakcie obliczania wartości funkcji dla jednej liczby wejściowej. Każdy obieg pętli OOOSH - 0012H różni się tylko pobieraniem z pamięci par danych o innych adresach. Dzięki istnieniu tej pętli przedstawiony program może 'wyznaczać wartość funkcji logicznej skła-dającej się z dowolnej ilości iloczynów. V.‘tedy zwiększa się tylko ilość danych zapisanych w pamięci począwszy od adresu 0021H oraz zmienia się pierwszy rozkaz, który powinien wpisywać zwiększony o jeden adres ostatniej danej.    #

Następny, podany niżej przykład będzie dotyczył programu, w którym wygodne będzie wykorzystanie podprogramu.

Przykład 6.3

Przygotować program dla y.P 8080 sprawdzający, czy sumy arytmetyczne liczb 8-bitowych wczytanych z urządzenia nr 1 i urządzeń 2,3,4 są zawarte w przedziale 20,200. Pozytywny wynik sprawdzenia jest sygnalizowany wyprowadzeniem jedynek do urządzenia wyjściowego nr 1, zaś negatywny wyprowadzeniem zer. Po wykonaniu trzech sprawdzeń program wczytuje następne 4 liczby.

Już z pobieżnej analizy zadania wynika, że program powinien składać cię z dv;óch części: pierwszej, która dokonuje wczytywania liczb z zewnątrz

w odpowiedniej kolejności i drugiej, która będzie porównywała sumę dwóch liczb z zadanymi progami. Tę drugą część potraktujemy jako podprogram, do którego pierwsza część programu będzie się odwoływała rozkazami CALL.

Oto program:

0000

raci sp.ooeoH

0019

JC 002BH

0003

XN 1

001 c

CPI 201

0005

M0V 3,A

001E

JNC 002BH

0006

IN 2

0021

CPI 20

0008

CALL 0016H

0023

JC 002BH

000B

IN 3

0026

Ł*VI A,PPH

OOOD

CALL 0018K

0028

OUT 1

0010

IN 4

002A

RET

0012

CALL 0018H

002B

LVI A,0

0015

J!iP 0003H

002D

OUT 1

0018

ADD B

002F

RET

Pierwszy rozkaz ŁXI SP,OOóOH wprowadza liczbę 0060H do wskaźnika stosu, rezerwując w ten sposób miejsce w pamięci dla przechowywania zawartości licznika rozkazów przy rozkazie CALL. Rozkazy o adresach 0003H+0J15H powodują wczytanie danych z zewnątrz i odwołanie się do podprogramu. Rozkazy o adresach 0018H + 002FH stanowią podprogram, który porównuje sumę dwóch liczb z zadanymi progami 20 i 200.    **

Ostatni z tej grupy przykładów będzie dotyczył programu obsługi przerwania.

Przykład 6.4

Przygotować program dla jj.P £080 wykonujący obliczenia z przykładu £.2 oraz obsługujący przerwanie. Obsługa przerwania ma polegać na wczytaniu liczby dwójkowej z urządzenia wejściowego nr 2, dodaniu jej do zawartości pary komórek pamięci zewnętrznej o adresach 0065H i 0066H i podaniu na urządzenie wyjściowe nr 2 aktualnej zawartości tej pary komórek pamięci. Sygnał przerwania powoduje podanie do procesora rozkazu RST 6.

Oto program:

0000

1X1 SP,OC50H

0033

OUT

2

0003 '

program z przykładu 6.2 z odpowiednie zmodyfikowanymi adresami

003A

K0V

M.A

0029 .

0033

0030

0030

0030

K0ł/

INR

AOC

OUT

A,H

L

M

2

0030

FUSH PSW

001*0

KCV

fi,A

0031

PUSH H

00M

POP

R

0032

IN 2

00*2

POP

FlW

003*

LXI H,0O65H

00*. 3

El

0037

ADD M

00**

RET

Pojawienie się sygnału przerwania w dowolnej chwili wykonywania programu zawartego w komórkach 0005H - 00029H, powoduje ukończenie wykonywanego aktualnie rozkazu i przejście procesora do cyklu POTWIERDZENIE PRZERWANIA, w czasie którego procesor otrzymuje z urządzenia przerywającego rozkaz RSPó. Rozkaz den powoduje z kolei skok do adresu 0030H, w którym rozpoczyna się program obsługi przerwania. Program ten na początku zabezpiecza przed zniszczeniem, poprzez przesłanie do stosu zawartość rejestru A, wskaźników i rejestrów V i L, a następnie dokonuje wskazanego sumowania liczby wejściowej z liczbą w pomięci. ?.• z-.kończeniu tych operacji pro-


Wyszukiwarka

Podobne podstrony:
258 259 258 Oto program: O 0000 BIVI C, 27H 0012 JNZ 0008H 0002 LXI H, 0021H 0015 MVT A,
DSC01536 wy. Oto program. A co do metody, to polega ona przede wszystkim na piskliwym śmiechu, a tak
ANSI C 9 5 WSKAŹNIK! I TABLICE ________— A oto program: #include <stdio.h> #include
S5001382 (2) CKLTIC M T l I I Mi:NT IN SLOVAKIA YOONG U Tliu r ^ 4. SETTLEMENT ARCHITECTURE 4.1. G
84 Mateusz Zapala mi superbohaterów, m.in. Batmana (np. „Powrót Mrocznego Rycerza” Franka Millera i
V p; Rakowiecka 37 im mn (tiittiit Mi if in n«r> mm i w mim mi iramn m mimn nunin Huna HH(rm i mn
rozw wanna 1 Mi £ in ó A kO hł /M,Xn’X ?,00 «Vk W (cauc-u etówWt^.    cf*UM‘^J‘U ^»-
P1020593 Bk    Mi. i ii in« ni pi/ "h
PROGRAMME CONTENT Form of classes - lecture Number of hours Lec 1,2 Organizational matters. Signal
PROGRAMME CONTENT Form of classes - lecture Number of hours Lec 1,2 Organizational matters. Signal
DSC07741 Fig. 1.1. (1) SocobamtMupis Ihred Ht Ortovici»n (Ocidoc) times. 450 Mi »go in » ncar-shore
63322 S5001382 (2) CKLTIC M T l I I Mi:NT IN SLOVAKIA YOONG U Tliu r ^ 4. SETTLEMENT ARCHITECTURE
PROGRAMME CONTENT Form of classes - lecture Number of hours Lec 1,2 Organizational matters. Signal
fizyczna drMT II kolokwium 1 I Hi t .. m aiiitostoisrato cyliMrrc łanln iyw n»rf mi n«py}in *•« kto
P1020593 Bk    Mi. i ii in« ni pi/ "h
P1020593 Bk    Mi. i ii in« ni pi/ "h
IMAG0222 W pływ mi kroki in lici Norma ISO 7730 dotyczy umiarkowanych warunków mikrokłimatycznych.

więcej podobnych podstron