Aaaa

Embed Size (px)

DESCRIPTION

aaaaaaaaa

Citation preview

30ms 0Ah . 2 5 1 0 F00Ah 2, 7. 5MHz. If bit 2,5==1,0If bit 2,5==1,0 fosc=5MHz Tosc=0,2 sec Ts=2Tosc Ts=0,4sec DOCNI_1: MVI D,178d DOCNI: DCR D JNZ DOCNI RET DOCNI_30: MVI E,30dMVI D,178d DOCNI: DCR D JNZ DOCNI DCR E JNZ DOCNI_1 RET START: CALL DOCNI_30 IN VLEZNA MOV B,A ANI 00100000b JNZ MNOZI_SO_7 MOV A,B ORI 11111011b CPI FFh JNZ MNOZI_SO_7 DELI_SO_2: MOV A,B RRC STA IZLEZNA JMP START MNOZI_SO_7:MVI C,7d MVI A,0 PAK: ADD B DCR C JNZ PAK STA IZLEZNA JMP START END VLEZNA EQU OAh IZLEZNA EQU F00Ah 8155/56 RAM- 4800h48FFh. , B . T = 1ms. (f=4MHZ). CSR 01001 000 PA 01001 001 PB 01001 010 PC 01001 011 TLSB 01001 100 TMSB 01001 101 T=0,25 microsec, Ts = 0,5 microsec; 1 ms = 2000 * 0,5 microsec; 2000 = 7*256+208 TMSB 11000111 TLSB 11010000 CSR 11010110 MVI A, 208d CSR EQV 01001000 OUT TLSB TMSB EQV 01001101 MVI A, 199d TLSB EQV 01001100 OUT TMSB MVI A, D6h OUT CSR END

, ( ). START MVI H,LIGHT MVI L, LOC MOV A,M OUT PORTA CALL DOCNI_1MIN INX H MOV A,M OUT PORTA CALL DOCNI_3SEC MOV A,M OUT PORTA CALL DOCNI_3SEC JMP START END

C : void main() { const int = 30; int x[50], y[50], z[50]; ADRX DS 50 ADRZ DS 50 ADRY DS 50 N DS 1 MVI A,30d STA N LXI B,ADRZ LXI D,ADRY LXI H,ADRX VRTI: STAX B LDAX D RLC RLC MOV M,A INX B INX D INX H LDA N DCR A STA N JNZ VRTI

09h 0Bh POCET, 1200bps 255 . , 0Ah 0Ch. P 8085. 4MHz. CEKAJ: IN 0Bh CPI 09h JNZ CEKAJ LXI H,POCET MVI D,255 PK: MOV A,M CALL PRATI INX H DCR D JNZ PAK MVI A,0Ch OUT 0Ah END DOCNI: MVI , 119d LOOP: DCR JNZ LOOP RET PRATI: MVI C,8h CIKL: MOV B,A ORI 01000000 SIM CALL DOCNI MOV A,B RLC DCR C JNZ CIKL RET 2 . FFFAh .OVDE_DATA SEGMENT PASSWORD DB FAILSAFE INPUT_PW DB 8 DUP(?) OVDE_DATA ENDS OVDE_KODE SEGMENT ASSUME CS: OVDE_KODE, DS:OVDE_DATA, ES:OVDE_DATA MOV AX,OVDE_DATA MOV DS,AX MOV ES,AX LDS SI, PASSWORD LEA DI, INPUT_PW MOV CX, 08H CLD REPE CMPSB JNE SOUNDALARM JMP O_K SOUND_ALARM:MOV AL,01h MOV DX,0FFFAh OUT DX,AL HLT O_K: HLT OVDE_CODE ENDS END

12 1ms 100 , .IN_PORT EQU 0FFF8h D_S SEGMENT IN POLE DW 100 DUP(?) D_S ENDS S_S SEGMENT STACK DW 40 DUP(?) S_TOP LABEL WORD S_S ENDS C_S SEGMENT ASSUME CS: C_S,DS:D_S,SS:S_S MOV AX, D_S MOV DS, AX MOV AX, S_S MOV SS, AX MOV SP, OFFSET S_TOP LEA SI, IN_POLE MOV BX,100d MOV DX, IN_PORT PAK: IN AX, DX AND AX, 0FFFh MOV [SI],AX CALL WAIT_1MS INC SI INC SI DEC BX JNZ PAK WAIT_1MS PROC NEAR MOV CX, 23F2h OVDE:LOOP OVDE RET WAIT_1MS:ENDP C_S ENDS END8 . . , . . COM_LINES SEGMENT AT 800h COM_STATUS DB ? DB ? COM_DATA DB ? DB ? DB 28 DUP(?) COM_LINES ENDS C_S SEGMENT CHR_RDY EQU 00000010b ASSUME CS:C_S, DS:COM_LINES PAK: MOV CX,8 SUB SI,SI NOV_TEST: TEST COM_STATUS[SI],CHR_RDY JE READ_DATA ADD SI,4 LOOP NOV_TEST JMP PAK READ_DATA: MOV AL,COM_DATA[SI] ADD SI,2 LOOP NOV_TEST JMP PAK C_S ENDS

133 . . PRINTER SEGMENT PRINT_SELECT DB 133 (?) DB 123 (?) PRINTER ENDS D_S SEGMENT ASSUME CS:C_S;DS:D_S;ES:PRINTER MOV AX,D_S MOV DS,AX MOV AX,PRINTER MOV ES,AX MOV SI,OFFSET PRINT_BUF MOV DI,OFFSET PRINT_SELECT MOV CX, PRINT_COUNT CLD REP MOVS [DI],[SI] C_S ENDS END 2 , . S_SEG SEGMENT DW 20 DUP(?) S_TOP LABEL WORD S_SEG ENDS D_SEG SEGMENT ARRAY_1 DB 10 DUP(?) ARRAY_2 DB 5 DUP(?) D_SEG ENDS PROC_SEG SEGMENT ASSUME CS:PROC_SEG, DS:D_SEG & SS:S_SEG EXAMPLE PROC FAR PUSH BP MOV BP,SP PUSH CX PUSH BX PUSHF MOV CX,[BP+8] MOV BX,[BP+6] POP F POP BX POP CX POP BP RET 4 EXAMPLE ENDP PROC_SEG ENDS CALLER_SEG SEGMENT ASSUME CS:CALLER_SEG, DS:D_SEG & SS:S_SEG MOV AX,D_SEG MOV DS,AX MOV AX,S_SEG MOV SS,AX MOV SP,OFFSET S_TOP MOV AX,LENGTH ARRAY_1 PUSH AX MOV AX,OFFSET ARRAY_1 PUSH AX CALL EXAMPLE MOV AX, LENGTH ARRAY_2 PUSH AX MOV AX, OFFSET ARRAY_2 PUSH AX CALL EXAMPLE CALLER_SEG ENDS END _ FAR 3 . , . .PROC_SEG SEGMENT ASSUME CS:PROC_SEG FORM_PODSTR PROC FAR PUSH BP MOV BP,SP MOV AL,[BP+8] MOV DI,[BP+10] MOV CX, LENGTH DI REPNE SCASBJNZ GO_NEMA SUB DI,1 MOV SI,DI MOV AX,PRINTER MOV DS,AX MOV ES,AX MOV CX,[BP+6] MOV DI, OFFSET PRINTER REP MOVSB 0 GO_NEMA: POP BP RET 6 ; FORM_PODSTR ENDP PROC_SEG ENDS . .D_SEG SEGMENT RCNC DB 100 DUP(?) MAX_DOLZ DB 0 DOLZ DB 0 POC_ADR DW ? MAX_ADR DW ? D_SEG ENDS PROGR SEGMENT ASSUME LEA SI,RCNC NEXT:LODSB CMP AL,_ JE NEXT CMP AL,. JE GOTOVO INC DOLZ ZBOR: SUB SI,1 MOV POC_ADR,SI ADD SI,1 SLEDEN:LODSB CMP AL,. JE GOTOVO CMP AL,_ JE NOV_ZBOR INC DOLZ JMP SLEDEN NOV_ZBOR:MOV AL,MAX_DOLZ CMP AL,DOLZ JNG NOV_MAX PRODOLZI:LODSB CMP AL,_ JE PRODOLZI CMP AL,. JE GOTOVO JMP ZBOR NOV_MAX:MOV MAX_DOLZ, DOLZ MOV MAX_ADR,POC_ADR JMP PRODOLZI GOTOVO:MOV DI,OFFSET PRINTER MOV CX,MAX_DOLZ MOV SI,MAX_ADR PAK: MOV[DI],[SI] ADD SI,1 LOOP PAK PROGR: ENDS END , VEK1 VEK2, N1, N2 16 , . VEK1 N2 . VEK1 VEK2; , . , VEK1 VEK2; , . , P1 P2 VEK1 VEK2 -1 (FFFFh). 8086.DATA SEGMENT P1 DW -1 P2 DW -1 N1 DW ? N2 DW ? VEK1 DW 1000h DUP (?) VEK2 DW 1000h DUP (?) DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX,DATA MOV DS,AX MOV DI,0 MOV BX,N2 VRTI_V2: MOV SI,0 MOV CX,N1 MOV AX,VEK2[DI] VRTI_V1: CMP AX,VEK1[SI] JZ IZLEZ ADD SI,2 LOOP VRTI_V1 ADD DI,2 DEC BX JNZ VRTI_V2 HLT IZLEZ: SHR SI SHR DI MOV P1,SI MOV P2,DI HLT CODE ENDS END START

NIZA 4 S. N, 1B. . DATA SEGMENT N DW ? S DW 0 NIZA DB 1000h DUP (?) DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX,DATA MOV DS,AX XOR SI,SI MOV DX,N VRTI: MOV AL,NIZA[SI] MOV CX,8 XOR BL,BL BROENJE: SHR AL,1 JNC PONATAMU INC BL PONATAMU: LOOP BROENJE CMP BL,4 JNA NE_OK INC S NE_OK: INC SI DEC DX JNZ VRTI HLT CODE ENDS END START