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

📄 sle3.asm

📁 c语言和汇编语言混合编程实例详解.rar
💻 ASM
字号:
;这是写SLE4442卡程序,文件名为SLE3.ASM
;功能: 新片处理- 校验密码(FFFFFF),将密码改为(55AA55)
;该新片处理程序,按以下步骤处理:
;(1) 密码校验程序是 VERIFI0 --校验密码(FFFFFF)
;(2) 写加密存储器程序是 WRSECU,它将密码改为(55AA55)
;CODE FFFFFFH

RST BIT P1.0
CLK BIT P1.1
IO  BIT P1.2
VDD BIT P1.3
FLAG BIT 0D5H

CBYTE1 EQU 30H
ABYTE2 EQU 00H
DBYTE3 EQU 55H
DATA1  EQU 20H

          ORG 0000H
   	  LJMP MAIN
	  ORG 0040H
MAIN:     MOV SP,#30H
          CLR EA
          CLR VDD
          CLR FLAG
          LCALL RESET
          LCALL VERIFI0
          LCALL WRSECU
          SETB VDD
          SJMP $
RESET:    MOV R1, #32
	  CLR        RST
	  CLR        CLK
	  LCALL      DY
	  SETB       RST
	  LCALL      DY
	  SETB       CLK
	  LCALL      DY
	  CLR        CLK
	  LCALL      DY
	  CLR        RST
RESET0:   SETB       CLK
	  LCALL      DY
	  CLR        CLK
	  LCALL      DY
	  DJNZ       R1, RESET0
	  RET
WCOMM:    LCALL      START
	  MOV A, #CBYTE1
	  LCALL      WBYTE
	  MOV A, #ABYTE2
          LCALL      WBYTE
          MOV A, #DBYTE3
          LCALL      WBYTE
	  LCALL      STOP
	  RET
START:    SETB       IO
          LCALL      DY
          SETB       CLK
          LCALL      DY
          CLR        IO
          LCALL      DY
          CLR        CLK
          RET
STOP:     CLR        CLK
	  LCALL      DY
	  CLR        IO
	  LCALL      DY
	  SETB       CLK
	  LCALL      DY
	  SETB       IO
	  RET
WBYTE:    MOV        R3,#08H
WBYTE1:   RRC        A
	  MOV        IO,C
	  SETB       CLK
	  LCALL      DY
	  CLR        CLK
	  LCALL      DY
	  DJNZ       R3,WBYTE1
	  RET
PCLOCK:   MOV        R1,#DATA1
PCLOCK1:  CLR        CLK
	  LCALL      DY
	  SETB       CLK
	  LCALL      DY
	  DJNZ       R1,PCLOCK1
	  CLR        CLK
	  LCALL      DY
          RET
RRQ:      MOV R0,#40H
          MOV R4,#10H
RDATA:    LCALL      RBYTE
	  MOV        @R0,A
	  INC        R0
	  DJNZ       R4,RDATA
	  CLR        CLK
	  LCALL      DY
          RET
RRQ1:     LCALL      RBYTE
	  MOV        R7,A
          LCALL      RBYTE
	  MOV        R6,A
          LCALL      RBYTE
	  LCALL      RBYTE
	  CLR        CLK
	  LCALL      DY
          RET
RBYTE:    MOV        R3,#08H
RBYTE1:   CLR        CLK
	  LCALL      DY
	  SETB       CLK
	  MOV        C,IO
	  RRC        A
	  LCALL      DY
	  DJNZ       R3,RBYTE1
	  RET
DY:       MOV        R7,#40H
DY1:      NOP
          DJNZ       R7,DY1
	  RET
WCOMM2:   LCALL      START
	  MOV A, R4
	  LCALL      WBYTE
	  MOV A, R5
          LCALL      WBYTE
          MOV A, R6
          LCALL      WBYTE
	  LCALL      STOP
	  RET
NOPASS:   SETB FLAG
          RET
VERIFI0:  MOV R4,#31H
          MOV R5,#00H
          MOV R6,#00H
          LCALL WCOMM2
          MOV R0,#40H
          MOV R4,#04H
          LCALL   RDATA
          MOV A,40H
          JZ NOPASS
          MOV R4,#39H
          MOV R5,#00H
          MOV R6,#05H
          LCALL WCOMM2
          MOV R1,#123
          LCALL PCLOCK1
          MOV R4,#33H
          MOV R5,#01H
          MOV R6,#0FFH ;CODE 1
          LCALL WCOMM2
          MOV R1,#02
          LCALL PCLOCK1
          MOV R4,#33H
          MOV R5,#02H
          MOV R6,#0FFH  ;CODE 2
          LCALL WCOMM2
          MOV R1,#02
          LCALL PCLOCK1
          MOV R4,#33H
          MOV R5,#03H
          MOV R6,#0FFH  ;CODE 3
          LCALL WCOMM2
          MOV R1,#02
          LCALL PCLOCK1
          MOV R4,#39H
          MOV R5,#00H
          MOV R6,#0FFH
          LCALL WCOMM2
          MOV R1,#254
          LCALL PCLOCK1
          MOV R4,#31H
          MOV R5,#00H
          MOV R6,#00H
          LCALL WCOMM2
          MOV R0,#40H
          MOV R4,#04H
          LCALL   RDATA
          MOV A,40H
          ANL A,#07H
          CJNE A,#07H,NOPASS
          RET
  WRSECU: MOV R4,#39H    ;将密码改为55aa55H
          MOV R5,#01H
          MOV R6,#055H   ; 密码的第1字节
          LCALL WCOMM2
          MOV R1,#254
          LCALL PCLOCK1
          MOV R4,#39H
          MOV R5,#02H
          MOV R6,#0AAH   ; 密码的第2字节
          LCALL WCOMM2
          MOV R1,#254
          LCALL PCLOCK1
          MOV R4,#39H
          MOV R5,#03H
          MOV R6,#055H    ;密码的第3字节
          LCALL WCOMM2
          MOV R1,#254
          LCALL PCLOCK1
          MOV R4,#31H
          MOV R5,#00H
          MOV R6,#00H
          LCALL WCOMM2
          MOV R0,#40H
          MOV R4,#4
          LCALL   RDATA
          RET
          END

⌨️ 快捷键说明

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