Professional Documents
Culture Documents
04 Zadaci I Del
04 Zadaci I Del
-I дел-
1. Секој 30ms од изолирана порта со адреса 0Ah се чита податок. Ако
битовите 2 и 5 се 1 и 0 соодветно на мемориска пресликана порта на
адреса F00Ah се испраќа прочитаниот податок поделен со 2, инаку се
испраќа прочитаниот податок помножен со 7. Фреквенцијата на
кристалот на осцилаторот е 5MHz.
If bit 2,5==1,0
F00Ah Data/2
Else
F00Ah Data*7
Решение:
fosc=5MHz
Tosc=0,2 µsec ;Периодата е 1/f. Работната периода е 2 пати поголема.
Ts=2Tosc
Ts=0,4µsec
DOCNI_1: MVI D,178d ;14 циклуси x 0,4 = 5,6 микросекунди x 178= 1ms
DOCNI: DCR D ;4 циклуси
JNZ DOCNI ;10 циклуси
RET
1
RRC ; ACC се дели со 2
STA IZLEZNA ;резултатот се запишува на Mm порта
JMP START ;безусловен скок на почеток
MNOZI_SO_7:MVI C,7d ;множењето е реализирано со собирање
MVI A,0
PAK: ADD B
DCR C
JNZ PAK
STA IZLEZNA ;резултатот се запишува на F00Ah
JMP START
END
2
CSR 01001 000
PA 01001 001
PB 01001 010
PC 01001 011
TLSB 01001 100
TMSB 01001 101
TMSB 11000111
TLSB 11010000 CSR
11010110
3
OUT TLSB TMSB EQV 01001101 MVI A, 199d TLSB EQV
01001100
OUT TMSB
MVI A, D6h
OUT CSR
END
P2
S2 S1
P1
РЕШЕНИЕ:
ЦЦ Ж З Ц Ж З Ц
0 0 1 1 0 0 1 0 1 мин
0 1 0 1 0 0 1 1 3 сек
1 0 0 1 1 0 1 1 3 сек
1 0 0 0 0 1 0 1 1 мин
1 0 0 0 1 0 1 1 3 сек
1 1 0 1 0 0 1 1 3 сек
0 0 1 1 0 0 1 0
4
CALL DOCNI_1MIN ;се повикува процедура за доцнење од 1 минута INX
H ; зголеми го HL парот за 1 (наредна локација)
MOV A,M ; се вчитува втората локација од ROM
OUT PORTA ; се праќа на соодветна I/O порта
CALL DOCNI_3SEC ;се повикува процедура за доцнење од 3 секунди
-
-
MOV A,M ; се вчитува првата локација од ROM OUT
PORTA ; се праќа на соодветна I/O порта
CALL DOCNI_3SEC ;се повикува процедура за доцнење од 3 секунди JMP
START ;на почеток на првобитната состојба на семафорот END
void main()
{
const int = 30;
int x[50], y[50], z[50];
for (int i=1; i<=N; i++)
{
z[i]=10;
x[i]=4*y[i];
} }
РЕШЕНИЕ:
5
INX H ;HL покажува на наредниот елемент од полето ADRX
LDA N
DCR A STA N ;намали го бројачот за 1.
1 1 1 n n n 1 1
6
7. Од изолирана порта на адреса 0Ah се чита низа на податоци и на
локација SUMA_PAR се сместува вкупниот број на парни броеви. За
време на работата може да се појави прекин од повисок приоритет
која на локација SUMA_PAR додава 3. Да
се нацрта хардверско поврзување и напише соодветна асемблерска
програма.
Иницијализација
Главна програма RET RET
END
2Ch: CALL
PRIMI_DATA 34h:CALL DOJDE_POVISOK
7
MVI A.0 ;реден број на корисникот
STA RDN_BR
MVI E,255d
VRTI: MOV A,E ;јамка за 255 корисника
ANI FFh
JNZ VRTI ;сите интерапти се случуваат тука
HLT ;крај на програмата
END
8
OUT 01h
LDA RDN_BR ;се вчитува редниот број на корисникот
INR A ;се зголемува за 1, се запишува во соодветната мемориска
локација и се испишува на втоориот дисплеј
STA RDN_BR
OUT 02h
DCR E ;еден корисник помалку
RET
SERVIS_65: MVI A,2d ;на дисплеј се испишува бројот на шалтер
OUT 01h
LDA RDN_BR ;се вчитува редниот број на корисникот