📄 ear.asm
字号:
;--------------------------------------------------------
; 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 + -