:

:

. -540

..

..

2010


1

1.1

, , , , .

:

1)

2)

3)


4)

5)


6)

: , , .


2

2.1

, .

:

1)

3)

: .


36

181648

3.1

, , 48, , , .

1.1. 31 32 1C3FH:

LOAD: MOV R0,#31 ; R0

MOV @R0,#1C ; 1C

INC R0 ;

MOV @R0,#3F ; 3F

1.2. 0 , 30H:

SEL RB1 ; 1

MOV R0,#30h ;

MOV R1,#0 ;

;

MOV R2,#8 ; () = 8

LOOP: MOV A,@R1 ;

MOVX @R0,A ;

INC R0 ;

INC R1

DJNZ R2,LOOP ; ,

1.3. 4- , R0 R1. ( 256). 1 . , . :

; Z = X*Y

; R0 = 0000XXXX

; R1 = 0000YYYY

; X Y 0 1

ORG 0 ; ,

;

MOV A,R0 ;

SWAP A ;

ORL A,R1 ;

;

MOVP3 A,@A ;

ORG 0300 ; ,

; ,

DB 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; Z=0*Y

DB 1*0,1*1,1*2,,1*0F ; Z=0*Y

DB 0F*0, 0F*1, 0F*2,, 0F*0F ; Z=0*Y

. :

1 1 1

0 0 1 1 0 1

0 0 1 1 0 1

0 1 1 0 1 0

1.4. R7 30:

MOV R0,#30h ; R0

MOV A,R7 ;

ADD A,@R0 ;

. , . 8421.

. , , , . . : 8, ; 8 4 8 2 . ( 01102).

.

6 2 1, .

ࠠ 8421

1 1 1 1

ࠠ 6 0 1 1 0

2 0 0 1 0

ࠠ 9 1 0 0 1

򠠠 1 0 0 1

10012 .

8 9.

ࠠ 8421

1 0 1 0

ࠠ 8 1 0 0 0

9 1 0 0 1

ࠠ 7 0 0 0 1

0 1 1 0

򠠠 0 1 1 1

6 7.

ࠠ 8421

1 0 1 1 1 0

ࠠ 6 0 1 1 0

7 0 1 1 1

ࠠ 3 1 1 0 1

0 1 1 0

򠠠 0 0 1 1

1.5. - (BCD-), A R7:

ADD A,R7 ;

DA A ;

. . : ( 0 1 1 0) , , . , =1 101102, = 1 010102 ( ). .

.

=0 10110, =1 01101.

1 1 1 1

0 1 0 1 1 0

1 1 0 0 1 1

0 0 1 0 0 1

, , , .

( ): =1 10110, =0 01101. , = 1 01001.

1

1 0 1 0 1 0

0 0 1 1 0 1

1 1 0 1 1 1

1 0 1 0 0 1

, , .

8- , . : .

1.6. . : ; .

A R6. . C .

CPL A ;

ADD A,R6 ;

CPL A ; ( )

1.7. 2- . . R1, R0. :

; Z = XY

; X, Y

; R0 Y

; R1 X

; X

SUBSTR: MOV A,@R0 ; Y

CPL A ; Y

INC A ;

ADD A,@R1 ;

MOV @R0,A ;

INC R0 ; X Y

INC R1 ;

MOV A,@R0 ; Y

CPL A ; Y

ADDC A,@R1 ;

MOV @R0,A ;

. 11012 10112.

1 1 0 1

1 0 1 1

1 1 0 1 1-

1 1 0 1 2-

0 0 0 0 3-

1 1 0 1 4-

1 0 0 0 1 1 1 1

, ( ), . : , , , , . .

, ( 11012 10112).

1 1 0 1 4-

1 1 0 1 0

0 0 0 0 3-

1 1 0 1 0 4- 3-

1 1 0 1 0 0

1 1 0 1 2-

1 0 0 0 0 0 1 4-, 3- 2-

1 0 0 0 0 0 1 0

1 1 0 1 1-

1 0 0 0 1 1 1 1

, 11012 10112.

1 1 0 1 1-

0 1 1 0 1

1 1 0 1 2-

1 0 0 1 1 1 1- 2-

1 0 0 1 1 1

0 0 0 0 3-

1 0 0 1 1 1 1-, 2- 3-

1 0 0 1 1 1

1 1 0 1 4-

1 0 0 0 1 1 1 1

1 0 0 0 1 1 1 1 ,

, .

1.8. . R1 , R2 . ( ) R1 ( ) . R3, , 8 ( ). . :

- R1 , , R1, C.

C = 1, , .

R3, , .

:

MPL: MOV R3,#8 ;

CLR A ;

CLR C ;

SHIFT: RRC A ;

XCH A,R1 ; R1

RRC A ;

; C

XCH A,R1 ; R1

JNC RESULT ; C = 1,

ADD A,R2 ;

RESULT: DJNZ R3,SHIFT ;

; (R3 = 0)

RRC A ;

XCH A,R1 ;

RRC A ; R1

XCH A,R1 ;

1.9. 2 X, X ( 8), R2. 2 R1:

MOV R1,#0 ; R1

CLR Ѡ ;

LOOP: RLC A ;

XCH A,R1 ; 16-

RLC A ; (R1) (A)

XCH A,R1 ;

DJNZ R2,LOOP ;

3.4.2.

1) 48;

2) , , ;

3) ;

4) , ;

5) .

2.1. . , 0 , . F0 PSW .

CLR F0 ; F0

MOV R7,#8 ;

LOOP: RRC A ; A.0

JNC NEXT ; , 0

CPL F0 ;

NEXT: DJNZ R7,LOOP ; 8

2.2. LL, ( PSW.4) :

JBSET: MOV A,PSW ; PSW

JB4 LL ; , A.4 = 1

LL: ;

2.3. ROUT, :

SEL MB1 ; MB

JMP ROUT ; ROUT

2.4. . , X ( 0 15). 16 ROUT0ROUTF X:

ORG 0 ;

ANL A,0F ; A

;

JMPP @A ;

;

DB ROUT0 ; ROUT0

DB ROUT1 ; ROUT1

DB ROUTF ; ROUTF

. . ,

A7B = 1010 0111 1011

A 7 B

. , .

9A5F:

9A5F16 = (9∙163 + 10∙162 + 5∙161 + 15∙160)=(((9∙16+10)∙16+5)∙16+15) = 3951910

9 A 5 F

, .

3951910

39519 |16

39504 2469 |16

15 2464 154.................................................................. |16

F 5 144 9

10

A

3951910 = 9A5F16. , 16 , .

2.5. . . . , - 10 (10102). .

8- -. . 12 : 4 , 10; 4 , 10 ; 4 , :

BBD: CALL DIV10 ; 10

MOV R7,A ; R7

MOV A,R1 ;

CALL DIV10 ; 10

SWAP A ; A

ORL A,R7 ; R7 A

JMP EXIT ;

; 10

;

; : R1 ,

DIV10: MOV R1,#0 ; R1

SUB10: ADD A,#(NOT(10)+1) ; 10

INC R1 ;

JC SUB10 ; , >= 0

DEC R1 ;

ADD A,#10 ;

RET ;

EXIT: ;

R1 , - .

3.4.3. / 48

1) / 48, /;

2) , /;

3) ;

4) , ;

5) .

3.1. 1 2:

TRAN: MOV A,#0FF ; 1

OUTL P1,A ;

IN A,P1 ; 1

OUTL P2,A ; 2

3.2. P7:

INPUT: MOVD A,P7 ; 7

;

3.3. . R7 0, 1, 3, 4 7 1:

IN A,P1 ; 1

ANL A,#10011011B ;

MOV R7,A ;

3.4. 2 , R0:

IN A,P2 ; 2

ANL A,R0 ;

3.5. 1, . , :

MOV R1,#8 ;

LOOP: JB0 ONE ; , A.0 = 1

ANL P1,#(NOT 1) ; P1.0

JMP NEXT ;

ONE: ORL P1,#1 ; P1.0

JMP NEXT ;

; 0 1

NEXT: RR A ; (

DJNZ R1,LOOP ; )

3.6. 03 1 :

ORL P1,#0F ; P1.0 P1.3

3.7. 47 2:

ANL P2,#0F ; P2.4 P2.7

3.8. T0:

WAIT: JT0 WAIT ; WAIT, T0

3.9. , :

DIS I ; INT

WAIT: JNI WAIT ; WAIT, INT

3.4.4. 48

1) / 48;

2) ;

3) ;

4) , ;

5) .

4.1. T1 100 PULSE:

MOV A,#156D ; A = (256-100)

MOV T,A ;

STRT CNT ;

WAIT: JTF PULSE ; , 100

JMP WAIT ;

PULSE:

4.2. , . . 5:

START: DIS TCNTI ;

CLR A ;

MOV T,A ;

MOV R5,A ; R5

STRT T ;

M1: JTF COUNT ; TF=1, COUNT TF

JMP M1 ;

COUNT: INC R5 ; R5

MOV A,R5 ; R5

JB3 INT ;

; INT, A.3 1

JMP M1 ; , A.3 1

;

INT: STOP TCNT ;

JMP 07 ; 7 (

; )

4.3. . , 100 . :

DELAY: MOV R2,#X ; (R2) ← X

COUNT: DJNZ R2,COUNT ; R2 ,

RET ;

X, . X , . , MOV RET , DJNZ X. , CALL DELAY, . , () . : CALL 2 , MOV 2 , DJNZ 2 , RET 2 .

6 2,5 . , 5+5+5X+5=15+5X . 100 X = (100-15)/5 = 17.

4.4. . , 100 :

DELAY: MOV R1,#84 ; X

LOOPEX: MOV R2,#236 ; Y

LOOPIN: DJNZ R2,LOOPIN ; R2 ,

; R2

DJNZ R1,LOOPEX ; R1 ,

; R1

MOV R3,#4 ;

LOOPAD: DJNZ R3,LOOPAD ;

RET ;

X Y T = 5+5+X(5+5Y+5)+5, T . , , X=Y=255 327,69 , .. 0,3 .

15+84(10+5*236)=99975 , LOOPAD 25 .

1 . . , . , 1 , 100 :

ONESEC: MOV R3,#10 ; R3

; DELAY

LOOP: CALL DELAY ; 100

DJNZ R3,LOOP ; R3 , R3 0

55 .

4.5. . : , . .

48 80 20 .

, 240 :

MOV A,#NOT(240/80-1) ;

MOV T,A ;

STRT T ;

EN TCNTI ;

240 . 7,5 ( STOP TCNT).

: 48, , , ; ; ; , ; .



2010