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

📄 ear.asm

📁 attendace system on 8051 chipset from intel.
💻 ASM
📖 第 1 页 / 共 4 页
字号:
;--------------------------------------------------------
; File Created by SDCC : FreeWare ANSI-C Compiler
; Version 2.3.0 Mon Sep 27 13:12:38 2004

;--------------------------------------------------------
	.module ear
	
;--------------------------------------------------------
; Public variables in this module
;--------------------------------------------------------
	.globl _keys
	.globl _main
	.globl _readbarcode
	.globl _find
	.globl _puts
	.globl _clearlcd
	.globl _putstring
	.globl _putch
	.globl _gotoxy
	.globl _init2x16lcd
	.globl _getkey
	.globl _scantoascii
	.globl _kbisr
	.globl _kbint
	.globl _init8051
	.globl _delay
	.globl _database_details
	.globl _attendance_records
	.globl _database_state
	.globl _readbarcode_PARM_2
	.globl _data_index
	.globl _data_received
	.globl _data_processed
	.globl __data
	.globl _timer0counter
	.globl _putstring_PARM_3
	.globl _putstring_PARM_2
	.globl _gotoxy_PARM_2
	.globl _bit_no
	.globl _is_keypressed
	.globl _recent_scan_code
	.globl _bit_received
	.globl _strstrcmp_PARM_2
	.globl _strstrlen
	.globl _strstrcmp
;--------------------------------------------------------
; special function registers
;--------------------------------------------------------
G$P0$0$0 == 0x0080
_P0	=	0x0080
G$P1$0$0 == 0x0090
_P1	=	0x0090
G$P2$0$0 == 0x00a0
_P2	=	0x00a0
G$P3$0$0 == 0x00b0
_P3	=	0x00b0
G$PSW$0$0 == 0x00d0
_PSW	=	0x00d0
G$ACC$0$0 == 0x00e0
_ACC	=	0x00e0
G$B$0$0 == 0x00f0
_B	=	0x00f0
G$SP$0$0 == 0x0081
_SP	=	0x0081
G$DPL$0$0 == 0x0082
_DPL	=	0x0082
G$DPH$0$0 == 0x0083
_DPH	=	0x0083
G$PCON$0$0 == 0x0087
_PCON	=	0x0087
G$TCON$0$0 == 0x0088
_TCON	=	0x0088
G$TMOD$0$0 == 0x0089
_TMOD	=	0x0089
G$TL0$0$0 == 0x008a
_TL0	=	0x008a
G$TL1$0$0 == 0x008b
_TL1	=	0x008b
G$TH0$0$0 == 0x008c
_TH0	=	0x008c
G$TH1$0$0 == 0x008d
_TH1	=	0x008d
G$IE$0$0 == 0x00a8
_IE	=	0x00a8
G$IP$0$0 == 0x00b8
_IP	=	0x00b8
G$SCON$0$0 == 0x0098
_SCON	=	0x0098
G$SBUF$0$0 == 0x0099
_SBUF	=	0x0099
G$T2CON$0$0 == 0x00c8
_T2CON	=	0x00c8
G$RCAP2L$0$0 == 0x00ca
_RCAP2L	=	0x00ca
G$RCAP2H$0$0 == 0x00cb
_RCAP2H	=	0x00cb
G$TL2$0$0 == 0x00cc
_TL2	=	0x00cc
G$TH2$0$0 == 0x00cd
_TH2	=	0x00cd
G$AUXR$0$0 == 0x008e
_AUXR	=	0x008e
G$LCD_DATA$0$0 == 0x0080
_LCD_DATA	=	0x0080
;--------------------------------------------------------
; special function bits 
;--------------------------------------------------------
G$CY$0$0 == 0x00d7
_CY	=	0x00d7
G$AC$0$0 == 0x00d6
_AC	=	0x00d6
G$F0$0$0 == 0x00d5
_F0	=	0x00d5
G$RS1$0$0 == 0x00d4
_RS1	=	0x00d4
G$RS0$0$0 == 0x00d3
_RS0	=	0x00d3
G$OV$0$0 == 0x00d2
_OV	=	0x00d2
G$P$0$0 == 0x00d0
_P	=	0x00d0
G$TF1$0$0 == 0x008f
_TF1	=	0x008f
G$TR1$0$0 == 0x008e
_TR1	=	0x008e
G$TF0$0$0 == 0x008d
_TF0	=	0x008d
G$TR0$0$0 == 0x008c
_TR0	=	0x008c
G$IE1$0$0 == 0x008b
_IE1	=	0x008b
G$IT1$0$0 == 0x008a
_IT1	=	0x008a
G$IE0$0$0 == 0x0089
_IE0	=	0x0089
G$IT0$0$0 == 0x0088
_IT0	=	0x0088
G$EA$0$0 == 0x00af
_EA	=	0x00af
G$ES$0$0 == 0x00ac
_ES	=	0x00ac
G$ET1$0$0 == 0x00ab
_ET1	=	0x00ab
G$EX1$0$0 == 0x00aa
_EX1	=	0x00aa
G$ET0$0$0 == 0x00a9
_ET0	=	0x00a9
G$EX0$0$0 == 0x00a8
_EX0	=	0x00a8
G$PS$0$0 == 0x00bc
_PS	=	0x00bc
G$PT1$0$0 == 0x00bb
_PT1	=	0x00bb
G$PX1$0$0 == 0x00ba
_PX1	=	0x00ba
G$PT0$0$0 == 0x00b9
_PT0	=	0x00b9
G$PX0$0$0 == 0x00b8
_PX0	=	0x00b8
G$RD$0$0 == 0x00b7
_RD	=	0x00b7
G$WR$0$0 == 0x00b6
_WR	=	0x00b6
G$T1$0$0 == 0x00b5
_T1	=	0x00b5
G$T0$0$0 == 0x00b4
_T0	=	0x00b4
G$INT1$0$0 == 0x00b3
_INT1	=	0x00b3
G$INT0$0$0 == 0x00b2
_INT0	=	0x00b2
G$TXD$0$0 == 0x00b1
_TXD	=	0x00b1
G$RXD$0$0 == 0x00b0
_RXD	=	0x00b0
G$SM0$0$0 == 0x009f
_SM0	=	0x009f
G$SM1$0$0 == 0x009e
_SM1	=	0x009e
G$SM2$0$0 == 0x009d
_SM2	=	0x009d
G$REN$0$0 == 0x009c
_REN	=	0x009c
G$TB8$0$0 == 0x009b
_TB8	=	0x009b
G$RB8$0$0 == 0x009a
_RB8	=	0x009a
G$TI$0$0 == 0x0099
_TI	=	0x0099
G$RI$0$0 == 0x0098
_RI	=	0x0098
G$ET2$0$0 == 0x00ad
_ET2	=	0x00ad
G$PT2$0$0 == 0x00bd
_PT2	=	0x00bd
G$T2EX$0$0 == 0x0091
_T2EX	=	0x0091
G$T2$0$0 == 0x0090
_T2	=	0x0090
G$TF2$0$0 == 0x00cf
_TF2	=	0x00cf
G$EXF2$0$0 == 0x00ce
_EXF2	=	0x00ce
G$RCLK$0$0 == 0x00cd
_RCLK	=	0x00cd
G$TCLK$0$0 == 0x00cc
_TCLK	=	0x00cc
G$EXEN2$0$0 == 0x00cb
_EXEN2	=	0x00cb
G$TR2$0$0 == 0x00ca
_TR2	=	0x00ca
G$C_T2$0$0 == 0x00c9
_C_T2	=	0x00c9
G$CP_RL2$0$0 == 0x00c8
_CP_RL2	=	0x00c8
G$CE$0$0 == 0x0093
_CE	=	0x0093
G$P2_5$0$0 == 0x00a5
_P2_5	=	0x00a5
G$P2_6$0$0 == 0x00a6
_P2_6	=	0x00a6
G$P2_7$0$0 == 0x00a7
_P2_7	=	0x00a7
G$ENTER_KEY$0$0 == 0x00b4
_ENTER_KEY	=	0x00b4
G$DOWN_ARROW_KEY$0$0 == 0x00b4
_DOWN_ARROW_KEY	=	0x00b4
G$UP_ARROW_KEY$0$0 == 0x00b4
_UP_ARROW_KEY	=	0x00b4
G$ESCAPE_KEY$0$0 == 0x00b4
_ESCAPE_KEY	=	0x00b4
G$KB_CLCK$0$0 == 0x00b2
_KB_CLCK	=	0x00b2
G$KB_DATA$0$0 == 0x0091
_KB_DATA	=	0x0091
G$RS$0$0 == 0x00a0
_RS	=	0x00a0
G$ENABLE$0$0 == 0x00a1
_ENABLE	=	0x00a1
G$P1_1$0$0 == 0x0091
_P1_1	=	0x0091
;--------------------------------------------------------
; internal ram data
;--------------------------------------------------------
	.area DSEG    (DATA)
Lstrstrcmp$str2$1$1==.
_strstrcmp_PARM_2::
	.ds 3
Lstrstrcmp$str1$1$1==.
_strstrcmp_str1_1_1::
	.ds 3
G$bit_received$0$0==.
_bit_received::
	.ds 1
G$recent_scan_code$0$0==.
_recent_scan_code::
	.ds 1
G$is_keypressed$0$0==.
_is_keypressed::
	.ds 1
G$bit_no$0$0==.
_bit_no::
	.ds 1
Lgotoxy$y$1$1==.
_gotoxy_PARM_2::
	.ds 1
Lputstring$vi2$1$1==.
_putstring_PARM_2::
	.ds 1
Lputstring$string$1$1==.
_putstring_PARM_3::
	.ds 3
Fear$overflow_count$0$0==.
_overflow_count:
	.ds 4
G$timer0counter$0$0==.
_timer0counter::
	.ds 2
G$_data$0$0==.
__data::
	.ds 35
G$data_processed$0$0==.
_data_processed::
	.ds 1
G$data_received$0$0==.
_data_received::
	.ds 1
G$data_index$0$0==.
_data_index::
	.ds 1
Lfind$barcode$1$1==.
_find_barcode_1_1::
	.ds 3
Lfind$sloc0$1$0==.
_find_sloc0_1_0::
	.ds 2
Lfind$sloc1$1$0==.
_find_sloc1_1_0::
	.ds 3
Lreadbarcode$counts$1$1==.
_readbarcode_PARM_2::
	.ds 2
Lreadbarcode$sloc0$1$0==.
_readbarcode_sloc0_1_0::
	.ds 1
Lmain$barcode$1$1==.
_main_barcode_1_1::
	.ds 15
;--------------------------------------------------------
; overlayable items in internal ram 
;--------------------------------------------------------
	.area _DUMMY
	.area	OSEG    (OVR,DATA)
	.area _DUMMY
	.area	OSEG    (OVR,DATA)
	.area _DUMMY
	.area	OSEG    (OVR,DATA)
	.area _DUMMY
	.area	OSEG    (OVR,DATA)
;--------------------------------------------------------
; Stack segment in internal ram 
;--------------------------------------------------------
	.area	SSEG	(DATA)
__start__stack:
	.ds	1

;--------------------------------------------------------
; indirectly addressable internal ram data
;--------------------------------------------------------
	.area ISEG    (DATA)
;--------------------------------------------------------
; bit data
;--------------------------------------------------------
	.area BSEG    (BIT)
;--------------------------------------------------------
; external ram data
;--------------------------------------------------------
	.area XSEG    (XDATA)
G$database_state$0$0==.
_database_state::
	.ds 4
G$attendance_records$0$0==.
_attendance_records::
	.ds 3000
G$database_details$0$0==.
_database_details::
	.ds 4
;--------------------------------------------------------
; interrupt vector 
;--------------------------------------------------------
	.area CSEG    (CODE)
__interrupt_vect:
	ljmp	__sdcc_gsinit_startup
	ljmp	_kbint
	.ds	5
	reti
	.ds	7
	reti
	.ds	7
	reti
	.ds	7
	reti
	.ds	7
	reti
	.ds	7
;--------------------------------------------------------
; global & static initialisations
;--------------------------------------------------------
	.area GSINIT  (CODE)
	.area GSFINAL (CODE)
	.area GSINIT  (CODE)
__sdcc_gsinit_startup:
	mov	sp,#7
	lcall	__sdcc_external_startup
	mov	a,dpl
	jz	__sdcc_init_data
	ljmp	__sdcc_program_startup
__sdcc_init_data:
	G$main$0$0 ==.
	C$ear.c$33$1$1 ==.
;	D:\Shekhar\Projects\EAR-1022\System\ear.c 33
	mov	_bit_received,#0x00
	G$main$0$0 ==.
	C$ear.c$135$1$1 ==.
;	D:\Shekhar\Projects\EAR-1022\System\ear.c 135
	mov	_is_keypressed,#0x00
	G$main$0$0 ==.
	C$ear.c$136$1$1 ==.
;	D:\Shekhar\Projects\EAR-1022\System\ear.c 136
	mov	_bit_no,#0x01
	G$main$0$0 ==.
	C$ear.c$55$1$1 ==.
;	D:\Shekhar\Projects\EAR-1022\System\ear.c 55
	clr	a
	mov	(_overflow_count + 3),a
	mov	(_overflow_count + 2),a
	mov	(_overflow_count + 1),a
	mov	_overflow_count,a
	G$main$0$0 ==.
	C$ear.c$57$1$1 ==.
;	D:\Shekhar\Projects\EAR-1022\System\ear.c 57
	clr	a
	mov	(_timer0counter + 1),a
	mov	_timer0counter,a
	G$main$0$0 ==.
	C$ear.c$60$1$1 ==.
;	D:\Shekhar\Projects\EAR-1022\System\ear.c 60
	mov	_data_processed,#0x01
	G$main$0$0 ==.
	C$ear.c$61$1$1 ==.
;	D:\Shekhar\Projects\EAR-1022\System\ear.c 61
	mov	_data_received,#0x00
	G$main$0$0 ==.
	C$ear.c$62$1$1 ==.
;	D:\Shekhar\Projects\EAR-1022\System\ear.c 62
	mov	_data_index,#0x00
	.area GSFINAL (CODE)
	ljmp	__sdcc_program_startup
;--------------------------------------------------------
; Home
;--------------------------------------------------------
	.area HOME	 (CODE)
	.area CSEG    (CODE)
;--------------------------------------------------------
; code
;--------------------------------------------------------
	.area CSEG    (CODE)
__sdcc_program_startup:
	lcall	_main
;	return from main will lock up
	sjmp .
;------------------------------------------------------------
;Allocation info for local variables in function 'delay'
;------------------------------------------------------------
	G$delay$0$0 ==.
	C$delay.h$4$0$0 ==.
;	D:\Shekhar\Projects\EAR-1022\System/delay\delay.h 4
;	-----------------------------------------
;	 function delay
;	-----------------------------------------
_delay:
	ar2 = 0x02
	ar3 = 0x03
	ar4 = 0x04
	ar5 = 0x05
	ar6 = 0x06
	ar7 = 0x07
	ar0 = 0x00
	ar1 = 0x01
	C$delay.h$0$0$0 ==.
;	D:\Shekhar\Projects\EAR-1022\System/delay\delay.h 0
	mov	r2,dpl
	mov	r3,dph
00101$:
	C$delay.h$6$1$1 ==.
;	D:\Shekhar\Projects\EAR-1022\System/delay\delay.h 6
	mov	a,r3
; Peephole 112   removed ljmp by inverse jump logic
	jb   acc.7,00105$
00109$:
;	tail decrement optimized
	dec	r2
	cjne	r2,#0xff,00101$
	dec	r3
; Peephole 132   changed ljmp to sjmp
	sjmp 00101$
00105$:
	C$delay.h$7$1$1 ==.
	XG$delay$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'strstrlen'
;------------------------------------------------------------
	G$strstrlen$0$0 ==.
	C$string.h$10$1$1 ==.
;	D:\Shekhar\Projects\EAR-1022\System/string\string.h 10
;	-----------------------------------------
;	 function strstrlen
;	-----------------------------------------
_strstrlen:
	C$string.h$20$1$1 ==.
;	D:\Shekhar\Projects\EAR-1022\System/string\string.h 20
	mov	r2,dpl
	mov	r3,dph
	mov	r4,b
	C$string.h$14$1$1 ==.
;	D:\Shekhar\Projects\EAR-1022\System/string\string.h 14
	mov	r5,#0x00
	mov	r6,#0x00
00101$:
	mov	dpl,r2
	mov	dph,r3
	mov	b,r4
	lcall	__gptrget
	mov	r7,a
	inc	dptr
	mov	r2,dpl
	mov	r3,dph
	mov	a,r7
; Peephole 110   removed ljmp by inverse jump logic
	jz  00103$
00108$:
	C$string.h$16$2$2 ==.
;	D:\Shekhar\Projects\EAR-1022\System/string\string.h 16
	C$string.h$17$2$2 ==.
;	D:\Shekhar\Projects\EAR-1022\System/string\string.h 17
;	tail increment optimized
	inc	r5
	cjne	r5,#0x00,00101$
	inc	r6
; Peephole 132   changed ljmp to sjmp
	sjmp 00101$
00103$:
	C$string.h$20$1$1 ==.
;	D:\Shekhar\Projects\EAR-1022\System/string\string.h 20
	mov	dpl,r5
	mov	dph,r6
00104$:
	C$string.h$21$1$1 ==.
	XG$strstrlen$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'strstrcmp'
;------------------------------------------------------------
;str2                      Allocated to in memory with name '_strstrcmp_PARM_2'
;str1                      Allocated to in memory with name '_strstrcmp_str1_1_1'
;i                         Allocated to registers r5 r6 
;j                         Allocated to registers r7 r0 
	G$strstrcmp$0$0 ==.
	C$string.h$49$1$1 ==.
;	D:\Shekhar\Projects\EAR-1022\System/string\string.h 49
;	-----------------------------------------
;	 function strstrcmp
;	-----------------------------------------
_strstrcmp:
	C$string.h$0$1$1 ==.
;	D:\Shekhar\Projects\EAR-1022\System/string\string.h 0
	mov	_strstrcmp_str1_1_1,dpl
	mov	(_strstrcmp_str1_1_1 + 1),dph
	mov	(_strstrcmp_str1_1_1 + 2),b

⌨️ 快捷键说明

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