⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 b16-1.asm

📁 汇编语言的设计
💻 ASM
字号:
READ_COM:   EQU 0F4E3H
WRITE_COM:  EQU 0F4E0H
	
	ORG 	0000H
	LJMP	MAIN

	ORG	0003H
	LJMP	IINT0

	ORG	000BH
	LJMP	TT0

        ORG     0030H

MAIN:   MOV     SP,#08H

        LCALL   INIT
	
M1:     CLR	C
        MOV     A,39H
	SUBB    A,57H
	JNC     M1

        MOV     57H,#00H
        MOV     5BH,52H
	
        LCALL   PID
		
	CLR     C
	MOV     A,58H
	SUBB    A,#80H
	JC      IS0
	MOV     68H,A	
	LJMP    COU

IS0:    MOV     A,#10H
	MOV     68H,A	

COU:    LCALL   COUNTA

	MOV     A,58H
	LCALL   PUT_COM

	MOV	A,5BH
	ADD     A,#80H
	LCALL   PUT_COM

	MOV     A,3AH
	ADD     A,#80H
	LCALL   PUT_COM
	
        LJMP    M1

INIT:   MOV     TMOD,#21H
	MOV	IP,#02H
        
        MOV     TH0,#0FEH
        MOV     TL0,#00CH
        
        MOV     A,#00H
        MOV     R0,#50H
I1:     MOV     @R0,A
        INC     R0
        CJNE    R0,#80H,I1

        MOV     2FH,#00H
        MOV     5EH,#01H
	MOV     6AH,#7FH
        MOV     68H,#7FH
	MOV     90H,#0FEH
	
	LCALL   TX

        SETB    EX0
        SETB    IT0
        SETB    ET0
        SETB    TR0
        SETB    EA
        RET

IINT0:  PUSH   	ACC
        PUSH   	0F0H
        PUSH   	0D0H
        PUSH   	02H
        PUSH   	03H
        PUSH   	04H
        PUSH   	05H
        PUSH   	06H
        PUSH   	07H
        JB     	7FH,IN1
        SETB   	7FH
IN2:    POP    	07H
        POP    	06H
        POP    	05H
        POP    	04H
        POP    	03H
        POP    	02H
        POP    	0D0H
        POP    	0F0H
        POP    	ACC
        RETI

IN1:    CLR    	7FH
        LCALL  	VV
        MOV    	52H,51H
    
        LJMP   	IN2

VV:     MOV    	R2,#00H
	MOV    	R3,#00H
	MOV    	R4,#03H
	MOV    	R5,#0E8H
	MOV    	R6,5DH
	MOV    	R7,50H
	MOV    	A,50H
	JNZ    	LL
	MOV    	A,5DH		
	JZ     	MM1
LL:	LCALL  	DIV1
MM:	MOV    	5DH,#00H
        MOV    	51H,R5
	MOV    	50H,#00H
	MOV    	5DH,#00H
MM1:    RET

TT0:    PUSH   	ACC
        PUSH   	0D0H
        MOV    	8CH,#0FEH
        MOV    	8AH,#00CH
        SETB   	TR0
        INC    	57H
	LCALL   KJ
	CLR    	C
	JNB    	7FH,TT1
	CLR    	C
	MOV    	A,50H
	ADD    	A,#01H
	MOV    	50H,A
	MOV    	A,5DH
	ADDC   	A,#00H
	MOV    	5DH,A
	CLR    	C
	MOV    	A,5DH
	SUBB   	A,#07H
	JC     	TT1
	MOV    	5DH,#07H
	MOV    	50H,#0D0H
	CLR    	7FH
TT1:	POP    	0D0H
	POP    	ACC
	RETI	


COUNTA: 
	CLR    	C
	MOV    	A,#07FH
	SUBB   	A,68H
	MOV    	5CH,A	
        RET

KJ:           
	PUSH   	ACC
	MOV    	A,5EH
	CJNE   	A,#01H,TEST2    
	MOV    	A,6AH
	JNZ    	ANOT0
	MOV    	A,#02H
	MOV    	5EH,A
	MOV    	A,5CH
	CLR    	C
	RRC    	A
	MOV    	59H,A
	LJMP   	TEST2
ANOT0:  CLR    	C
	MOV    	A,6AH
	SUBB   	A,#01H
	MOV    	6AH,A
	SETB	P1.0
TEST2:  MOV    	A,5EH
	CJNE   	A,#02H,OUT
	MOV    	A,59H
	JNZ    	BNOT0
	MOV    	A,#01H
	MOV    	5EH,A
	MOV    	A,68H
	CLR    	C
        RRC    	A
	MOV    	6AH,A
	LJMP   	OUT
BNOT0:  CLR    	C
	MOV    	A,59H
	SUBB   	A,#01H
	MOV    	59H,A
	CLR	P1.0
OUT:    POP    	ACC
	RET

PUT_COM:LCALL  	SEND0
	LCALL  	TEST
	RET

TEST:	MOV    	DPTR,#0CC1H
	LCALL 	READ_COM
	ANL    	A,#01H
	JZ     	TEST
	RET

SEND0:	MOV	DPTR,#0CC0H
	LCALL  	WRITE_COM
	RET	

SEND1:	MOV	DPTR,#0CC1H
	LCALL  	WRITE_COM
	RET

DLY1:	MOV	R1,#02H
D11:	MOV	R2,#0A0H
D21:	DJNZ    R2,D21
	DJNZ	R1,D11
	RET

TX:   	MOV	A,#00H
	LCALL	SEND1
	LCALL   DLY1
	LCALL	SEND1
	LCALL   DLY1
	LCALL	SEND1
	LCALL   DLY1
	LCALL   SEND0
	LCALL   DLY1
	LCALL	SEND0
	LCALL	DLY1

	MOV	A,#40H
	LCALL	SEND1
	LCALL	DLY1
	
	MOV	A,#7EH
	LCALL	SEND1
	LCALL	DLY1

	MOV	A,#34H
	LCALL	SEND1
	LCALL	DLY1

	MOV	A,#31H
	LCALL	SEND1
	LCALL	DLY1

        RET

YKF1:	ANL	A,#7FH
	MOV	0F0H,A
	CLR	C
	MOV	A,#080H
	SUBB	A,0F0H
	MOV	R2,A
	LJMP	YKF

PID:    MOV    	R5, #00H
        MOV    	R4, 3AH
        MOV    	R3, #00H
        MOV    	R2, 5BH
	MOV    	A,5BH
	JB     	0E7H,YKF1

        LCALL  	CPL1

YKF:    CLR    	C
        MOV    	A, R4
        ADD    	A, R2
        MOV    	R2, A
        MOV    	A, R5
        ADDC   	A, R3
        MOV    	R3, A
        MOV    	R0, 02H
        MOV    	R1, 03H
        MOV    	R4, 73H
        MOV    	R5, 74H
        CLR    	C
        MOV    	A, R0
        SUBB   	A, 71H
        MOV    	73H,A
        MOV    	A, R1
        SUBB   	A, 72H
        MOV    	74H,A
        MOV    	71H,R0
        MOV    	72H,R1
        CLR    	C
        MOV    	A, 73H
        SUBB   	A, R4
        MOV    	75H,A
        MOV    	A, 74H
        SUBB   	A, R5
        MOV    	76H,A
        CLR    	A
        MOV    	77H,A
        MOV    	78H,A
        MOV    	79H,A
        MOV    	7AH,A
        MOV    	A, R3
        JNB    	0E7H,EK1

        LCALL  	CPL1

EK1:    MOV    	A, R2
        CLR    	C
        SUBB   	A, 3BH
        MOV    	A, R3
        SUBB   	A, #00H
        JC     	II
        CLR    	A
        MOV    	7CH,A
        MOV    	7DH,A
        LJMP   	DDD
II:     MOV    	R5, 01H
        MOV    	R4, 00H
        MOV    	R7, #00H
        MOV    	R6, 39H
        MOV    	R0, #77H
        LCALL  	L20
        MOV    	R2,7AH
        MOV    	R3,79H
        MOV    	R4,78H
        MOV    	R5,77H
        PUSH   	0D0H
        MOV    	R7,43H
        MOV    	R6,42H
        LCALL  	DIV1
        POP    	0D0H
        JNC    	II1
        MOV    	A,R5
        CPL    	A
        ADD    	A,#01H
        MOV    	R5,A
        MOV    	A,R4
        CPL    	A
        ADDC   	A,#00H
        MOV    	R4,A
II1:    MOV    	7DH,R4
        MOV    	7CH,R5
DDD:    MOV    	R5,76H
        MOV    	R4,75H
        MOV    	R7,44H
        MOV    	R6,45H
        MOV    	R0,#77H
        LCALL  	L20
        MOV    	R2,7AH
        MOV    	R3,79H
        MOV    	R4,78H
        MOV    	R5,77H
        PUSH   	0D0H
        MOV    	0F0H,39H
        MOV    	A,#08H
        MUL    	AB
        MOV    	R6,0F0H
        MOV    	R7,A
        LCALL  	DIV1
        POP    	0D0H
        JNC    	DD1
        MOV    	A,R5
        CPL    	A
        ADD    	A,#01H
        MOV    	R5,A
        MOV    	A,R4
        CPL    	A
        ADDC   	A,#00H
        MOV    	R4,A
DD1:    MOV    	A,7CH
        ADD    	A,R5
        MOV    	R5,A
        MOV    	A,7DH
        ADDC   	A,R4
        MOV    	R4,A
        JB     	0D2H,L9
L2:     MOV    	A,73H
        ADD    	A,R5
        MOV    	R6,A
        MOV   	A,74H
        ADDC   	A,R4
        MOV    	R7,A
        JB     	0D2H,L3
L5:     MOV    	R4,41H
        MOV    	R5,40H
        MOV    	R0,#77H
        LCALL  	L19
L10:    MOV    	A,31H
	LJMP   	L11

        JNB    	0E6H,L11
        LJMP   	L12

L11:    MOV    	R0,#00CH
        LJMP   	L13
L12:    MOV   	R0,#09H
L13:    CLR    	C
L6:     MOV    	A,7AH
        MOV    	C,0E7H
        RRC    	A
        MOV    	7AH,A
        MOV    	A,79H
        RRC    	A
        MOV    	79H,A
        MOV    	A,78H
        RRC    	A
        MOV    	78H,A
        MOV    	A,77H
        RRC    	A
        MOV    	77H,A
        DJNZ   	R0,L6
        LCALL  	L14
        LJMP   	L7
L9:     MOV    	A,7DH
        JB     	0E7H,L1
        MOV    	R4,#07FH
        MOV    	R5,#0FFH
        LJMP   	L2
L1:     MOV    	R4,#080H
        MOV    	R5,#000H
        LJMP   	L2
L3:     MOV    	A,74H
        JB     	0E7H,L4
        MOV    	R7,#07FH
        MOV    	R6,#0FFH
        LJMP   	L5
L4:     MOV    	R7,#080H
        MOV    	R6,#000H
        LJMP   	L5
L7:     ADD    	A,5FH
        JB     	0D2H,L8
L18:    MOV    	5FH,A
        ADD    	A,#80H
        MOV    	58H,A
        RET
L8:     MOV    	A,7AH
        JB     	0E7H,L17
        MOV    	A,#07FH
        LJMP   	L18
L17:    MOV    	A,#080H
        LJMP   	L18

L14:    MOV   	A,7AH
        RLC    	A
        PUSH   	0D0H
        JC     	L15
        MOV   	A,78H
        ANL    	A,#0FEH
        JZ     	L16
        POP    	0D0H
        MOV    	A,#07FH
        RET
L16:    MOV    	A,78H
        RRC    	A
        MOV    	A,77H
        RRC    	A
        POP    	0D0H
        RRC    	A
        RET
L15:    MOV    	A,78H
        ANL    	A,#0FEH
        CLR    	C
        SUBB   	A,#0FEH
        JZ     	L16
        POP    	0D0H
        MOV    	A,#080H
        RET
L19:    CLR    	C
        LJMP   	L21
L20:    CLR    	C
        CPL    	C
L21:    PUSH   	0D0H
        MOV   	A,R7
        RLC    	A
        MOV    	6EH,C
        JNC    	L22
        MOV    	A,R6
        CPL    	A
        ADD    	A,#01H
        MOV    	R6,A
        MOV    	A,R7
        CPL    	A
        ADDC   	A,#00H
        MOV    	R7,A
L22:    MOV    	A,R5
        RLC    	A
        MOV    	6FH,C
        JNC    	L23
        MOV    	A,R4
        CPL    	A
        ADD    	A,#01H
        MOV    	R4,A
        MOV    	A,R5
        CPL    	A
        ADDC   	A,#00H
        MOV    	R5,A
L23:    LCALL  	L24
        MOV    	C,6EH
        ANL    	C,6FH
        JC     	L25
        MOV    	C,6EH
        ORL    	C,6FH
        JNC    	L25
        POP    	0D0H
        JC     	L26
        DEC    	R0
        DEC    	R0
        DEC    	R0
        MOV    	A,@R0
        CPL    	A
        ADD    	A,#01H
        MOV    	@R0,A
        LCALL  	L27
        LCALL  	L27
        LJMP   	L28
L25:    POP    	0D0H
L30:    CLR    	C
L26:    RET
L27:    INC    	R0
        MOV    	A,@R0
        CPL    	A
        ADDC   	A,#00H
        MOV    	@R0,A
        RET
L24:    MOV    	A,R6
        MOV    	0F0H,R4
        MUL    	AB
        MOV    	@R0,A
        MOV    	R3,0F0H
        MOV    	A,R4
        MOV    	0F0H,R7
        MUL    	AB
        ADD    	A,R3
        MOV    	R3,A
        MOV    	A,0F0H
        ADDC   	A,#00H
        MOV    	R2,A
        MOV    	A,R6
        MOV    	0F0H,R5
        MUL    	AB
        ADD    	A,R3
        INC    	R0
        MOV    	@R0,A
        CLR    	6DH
        MOV    	A,R2
        ADDC   	A,0F0H
        MOV    	R2,A
        JNC    	L29
        SETB   	6DH
L29:    MOV    	A,R7
        MOV    	0F0H,R5
        MUL    	AB
        ADD    	A,R2
        INC    	R0
        MOV    	@R0,A
        MOV    	A,0F0H
        ADDC   	A,#00H
        MOV    	C,6DH
        ADDC   	A,#00H
        INC    	R0
        MOV    	@R0,A
        RET
L28:    LCALL  	L27
        LJMP   	L30
CPL1:   MOV    	A,R2
        CPL    	A
        ADD    	A,#01H
        MOV    	R2,A
        MOV    	A,R3
        CPL    	A
        ADDC   	A,#00H
        MOV    	R3,A
        RET
DIV1:   MOV    	A,R3
        CLR    	C
        SUBB   	A,R7
        MOV    	A,R2
        SUBB   	A,R6
        CLR    	0D2H
        JC     	L31
        MOV    	R4,#07FH
        MOV    	R5,#0FFH
        SETB   	0D2H
        RET
L31:    MOV    	0F0H,#10H
L34:    CLR    	C
        MOV    	A,R5
        RLC    	A
        MOV    	R5,A
        MOV    	A,R4
        RLC    	A
        MOV    	R4,A
        MOV    	A,R3
        RLC    	A
        MOV    	R3,A
        XCH    	A,R2
        RLC    	A
        XCH    	A,R2
        MOV    	0D5H,C
        CLR    	C
        SUBB   	A,R7
        MOV    	R1,A
        MOV    	A,R2
        SUBB   	A,R6
        JB     	0D5H,L32
        JC     	L33
L32:    MOV    	R2,A
        MOV    	A,R1
        MOV    	R3,A
        INC    	R5
L33:    DJNZ   	0F0H,L34
        RET

	ORG    2000H
	MOV    R0,#50H
	MOV    A,#00H
CC1:	MOV    @R0,A
	INC    R0
	CJNE   R0,#80H,CC1
	MOV    39H,#25H
	MOV    3AH,#32H
	MOV    3BH,#60H
	MOV    40H,#10H
	MOV    41H,#10H
	MOV    42H,#00H
	MOV    43H,#10H
	MOV    44H,#00H
	MOV    45H,#25H
CC2:	SJMP   CC2


END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -