📄 sle2.asm
字号:
;这是读SLE4442卡汇编语言程序,文件名为SLE2.ASM,
;功能: 读存储器的三个区域:主存储器,保护存储器,加密存储器
;(1) CBYTE1 EQU 30H ;读主存储器
; ABYTE2 EQU 0F0H ;地址(00-ffh)
;(2) CBYTE1 EQU 34H ;读保护存储器,地址(0-31bit)
;(3) CBYTE1 EQU 31H ;读加密存储器,地址(00-03H)
RST BIT P1.0
CLK BIT P1.1
IO BIT P1.2
VDD BIT P1.3
CBYTE1 EQU 30H ;30H、34H、31H分别是读主存储器、保护存储器、加密存储器
ABYTE2 EQU 0F0H ;地址(00-ff)
DBYTE3 EQU 55H
DATA1 EQU 20H
ORG 0000H
LJMP MAIN
ORG 0040H
MAIN: MOV SP,#30H
CLR EA
CLR VDD
LCALL RESET
LCALL WCOMM
LCALL RRQ
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 ;R0中放读出数存放区首址,R4中放读出字节个数
MOV R4,#16
RDATA: LCALL RBYTE
MOV @R0,A
INC R0
DJNZ R4,RDATA
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: DJNZ R7,DY1
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -