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

📄 eeprom.asm

📁 TC35i收发短信的源代码
💻 ASM
📖 第 1 页 / 共 4 页
字号:
; line    64
$DGL	0,6
	movw	bc,#0FFH	; 255 				;[INF] 3, 6
?L0006:
; line    65
$DGL	0,7
??ef_ucUseProhibitionBlock:
	pop	hl						;[INF] 1, 4
	ret							;[INF] 1, 6
??ee_ucUseProhibitionBlock:
; line    74
_ucEffectiveBlock:
$DGL	1,43
	push	hl						;[INF] 1, 4
	movw	hl,ax						;[INF] 1, 4
??bf_ucEffectiveBlock:
; line    75
$DGL	0,2
	movw	de,ax						;[INF] 1, 4
	mov	a,[de]						;[INF] 1, 4
	cmp	a,#055H	; 85 					;[INF] 2, 4
	bnz	$?L0011						;[INF] 2, 6
	movw	ax,hl						;[INF] 1, 4
	incw	ax						;[INF] 1, 4
	movw	de,ax						;[INF] 1, 4
	mov	a,[de]						;[INF] 1, 4
	cmp	a,#0AAH	; 170 					;[INF] 2, 4
	bnz	$?L0011						;[INF] 2, 6
	movw	ax,hl						;[INF] 1, 4
	incw	ax						;[INF] 1, 4
	incw	ax						;[INF] 1, 4
	movw	de,ax						;[INF] 1, 4
	mov	a,[de]						;[INF] 1, 4
	cmp	a,#055H	; 85 					;[INF] 2, 4
	bnz	$?L0011						;[INF] 2, 6
	movw	ax,hl						;[INF] 1, 4
	addw	ax,#03H	; 3 					;[INF] 3, 6
	movw	de,ax						;[INF] 1, 4
	mov	a,[de]						;[INF] 1, 4
	cmp	a,#0AAH	; 170 					;[INF] 2, 4
	bnz	$?L0011						;[INF] 2, 6
; line    76
$DGL	0,3
??bb00_ucEffectiveBlock:
; line    77
$DGL	0,4
	movw	bc,#00H	; 0 					;[INF] 3, 6
	br	$?L0010						;[INF] 2, 6
??eb00_ucEffectiveBlock:
?L0011:
; line    79
$DGL	0,6
	movw	bc,#0FFH	; 255 				;[INF] 3, 6
?L0010:
; line    80
$DGL	0,7
??ef_ucEffectiveBlock:
	pop	hl						;[INF] 1, 4
	ret							;[INF] 1, 6
??ee_ucEffectiveBlock:
; line    89
_IsBlockValid:
$DGL	1,54
	push	hl						;[INF] 1, 4
	push	ax						;[INF] 1, 4
	push	ax						;[INF] 1, 4
	push	ax						;[INF] 1, 4
	movw	ax,sp						;[INF] 2, 8
	movw	hl,ax						;[INF] 1, 4
??bf_IsBlockValid:
; line    93
$DGL	0,5
	mov	a,[hl+4]	; ucBlock 			;[INF] 2, 8
	mov	c,a						;[INF] 1, 2
	push	hl						;[INF] 1, 4
	movw	hl,#_ucEEPROM_BLOCK				;[INF] 3, 6
	mov	a,[hl+c]					;[INF] 1, 6
	pop	hl						;[INF] 1, 4
	mov	x,#00H	; 0 					;[INF] 2, 4
	xch	a,x						;[INF] 1, 2
	call	!_usBlockToAddress				;[INF] 3, 7
	movw	ax,bc						;[INF] 1, 4
	mov	[hl+3],a	; usFlagAdr 			;[INF] 2, 8
	xch	a,x						;[INF] 1, 2
	mov	[hl+2],a	; usFlagAdr 			;[INF] 2, 8
; line    95
$DGL	0,7
	xch	a,x						;[INF] 1, 2
	call	!_ucEffectiveBlock				;[INF] 3, 7
	mov	a,c						;[INF] 1, 2
	mov	[hl+1],a	; ucResult 			;[INF] 2, 8
; line    97
$DGL	0,9
	mov	b,#00H	; 0 					;[INF] 2, 4
	xch	a,c						;[INF] 1, 2
; line    98
$DGL	0,10
??ef_IsBlockValid:
	pop	ax						;[INF] 1, 4
	pop	ax						;[INF] 1, 4
	pop	ax						;[INF] 1, 4
	pop	hl						;[INF] 1, 4
	ret							;[INF] 1, 6
??ee_IsBlockValid:
; line   109
_ucBlankBlock:
$DGL	1,63
	push	hl						;[INF] 1, 4
	movw	hl,ax						;[INF] 1, 4
??bf_ucBlankBlock:
; line   110
$DGL	0,2
	movw	de,ax						;[INF] 1, 4
	mov	a,[de]						;[INF] 1, 4
	inc	a						;[INF] 1, 2
	bnz	$?L0017						;[INF] 2, 6
	movw	ax,hl						;[INF] 1, 4
	incw	ax						;[INF] 1, 4
	movw	de,ax						;[INF] 1, 4
	mov	a,[de]						;[INF] 1, 4
	inc	a						;[INF] 1, 2
	bnz	$?L0017						;[INF] 2, 6
	movw	ax,hl						;[INF] 1, 4
	incw	ax						;[INF] 1, 4
	incw	ax						;[INF] 1, 4
	movw	de,ax						;[INF] 1, 4
	mov	a,[de]						;[INF] 1, 4
	inc	a						;[INF] 1, 2
	bnz	$?L0017						;[INF] 2, 6
	movw	ax,hl						;[INF] 1, 4
	addw	ax,#03H	; 3 					;[INF] 3, 6
	movw	de,ax						;[INF] 1, 4
	mov	a,[de]						;[INF] 1, 4
	inc	a						;[INF] 1, 2
	bnz	$?L0017						;[INF] 2, 6
; line   111
$DGL	0,3
??bb00_ucBlankBlock:
; line   112
$DGL	0,4
	movw	bc,#00H	; 0 					;[INF] 3, 6
	br	$?L0016						;[INF] 2, 6
??eb00_ucBlankBlock:
?L0017:
; line   114
$DGL	0,6
	movw	bc,#0FFH	; 255 				;[INF] 3, 6
?L0016:
; line   115
$DGL	0,7
??ef_ucBlankBlock:
	pop	hl						;[INF] 1, 4
	ret							;[INF] 1, 6
??ee_ucBlankBlock:
; line   127
_SelfFlashModeOn:
$DGL	1,74
??bf_SelfFlashModeOn:
; line   128
$DGL	0,2
	call	!_EnableFLMD					;[INF] 3, 7
; line   130
$DGL	0,4
	di							;[INF] 2, 6
; line   131
$DGL	0,5
	call	!_FlashStart					;[INF] 3, 7
; line   132
$DGL	0,6
	ei							;[INF] 2, 6
; line   133
$DGL	0,7
; line   134
$DGL	0,8
??ef_SelfFlashModeOn:
	ret							;[INF] 1, 6
??ee_SelfFlashModeOn:
; line   143
_SelfFlashModeOff:
$DGL	1,80
	di							;[INF] 2, 6
??bf_SelfFlashModeOff:
; line   145
$DGL	0,3
	call	!_FlashEnd					;[INF] 3, 7
; line   146
$DGL	0,4
	ei							;[INF] 2, 6
; line   148
$DGL	0,6
	call	!_DisableFLMD					;[INF] 3, 7
; line   150
$DGL	0,8
; line   151
$DGL	0,9
??ef_SelfFlashModeOff:
	ret							;[INF] 1, 6
??ee_SelfFlashModeOff:
; line   164
_ucSelfFlashInitialize:
$DGL	1,86
??bf_ucSelfFlashInitialize:
; line   165
$DGL	0,2
	movw	ax,#_ucEntryRAM					;[INF] 3, 6
	call	!_FlashEnv					;[INF] 3, 7
; line   166
$DGL	0,3
	call	!_CheckFLMD					;[INF] 3, 7
	inc	c						;[INF] 1, 2
	dec	c						;[INF] 1, 2
	bz	$?L0025						;[INF] 2, 6
; line   167
$DGL	0,4
??bb00_ucSelfFlashInitialize:
; line   168
$DGL	0,5
	movw	bc,#0FFH	; 255 				;[INF] 3, 6
	br	$?L0024						;[INF] 2, 6
??eb00_ucSelfFlashInitialize:
?L0025:
; line   170
$DGL	0,7
	movw	bc,#00H	; 0 					;[INF] 3, 6
?L0024:
; line   171
$DGL	0,8
??ef_ucSelfFlashInitialize:
	ret							;[INF] 1, 6
??ee_ucSelfFlashInitialize:
; line   181
_ucSelfFlashBlockErase:
$DGL	1,96
	push	hl						;[INF] 1, 4
	push	ax						;[INF] 1, 4
	push	ax						;[INF] 1, 4
	movw	ax,sp						;[INF] 2, 8
	movw	hl,ax						;[INF] 1, 4
??bf_ucSelfFlashBlockErase:
; line   184
$DGL	0,4
?L0029:
; line   185
$DGL	0,5
??bb00_ucSelfFlashBlockErase:
; line   187
$DGL	0,7
	di							;[INF] 2, 6
; line   188
$DGL	0,8
	mov	a,[hl+8]	; ucBlock 			;[INF] 2, 8
	mov	x,#00H	; 0 					;[INF] 2, 4
	xch	a,x						;[INF] 1, 2
	push	ax						;[INF] 1, 4
	mov	a,[hl+2]	; ucBank 			;[INF] 2, 8
	mov	x,#00H	; 0 					;[INF] 2, 4
	xch	a,x						;[INF] 1, 2
	call	!_FlashBlockBlankCheck				;[INF] 3, 7
	pop	ax						;[INF] 1, 4
	mov	a,c						;[INF] 1, 2
	mov	[hl+1],a	; ucStatus 			;[INF] 2, 8
; line   189
$DGL	0,9
	ei							;[INF] 2, 6
; line   191
$DGL	0,11
	mov	a,[hl+1]	; ucStatus 			;[INF] 2, 8
	cmp	a,#01BH	; 27 					;[INF] 2, 4
	bnz	$?L0031						;[INF] 2, 6
; line   192
$DGL	0,12
??bb01_ucSelfFlashBlockErase:
; line   194
$DGL	0,14
	di							;[INF] 2, 6
; line   195
$DGL	0,15
	mov	a,[hl+8]	; ucBlock 			;[INF] 2, 8
	mov	x,#00H	; 0 					;[INF] 2, 4
	xch	a,x						;[INF] 1, 2
	push	ax						;[INF] 1, 4
	mov	a,[hl+2]	; ucBank 			;[INF] 2, 8
	mov	x,#00H	; 0 					;[INF] 2, 4
	xch	a,x						;[INF] 1, 2
	call	!_FlashBlockErase				;[INF] 3, 7
	pop	ax						;[INF] 1, 4
	mov	a,c						;[INF] 1, 2
	mov	[hl+1],a	; ucStatus 			;[INF] 2, 8
; line   196
$DGL	0,16
	ei							;[INF] 2, 6
; line   199
$DGL	0,19
	mov	a,[hl+1]	; ucStatus 			;[INF] 2, 8
	cmp	a,#00H	; 0 					;[INF] 2, 4
	bz	$?L0029						;[INF] 2, 6
	cmp	a,#01FH	; 31 					;[INF] 2, 4
	bz	$?L0029						;[INF] 2, 6
; line   200
$DGL	0,20
??bb02_ucSelfFlashBlockErase:
; line   201
$DGL	0,21
	movw	bc,#0FFH	; 255 				;[INF] 3, 6
	br	$?L0030						;[INF] 2, 6
??eb02_ucSelfFlashBlockErase:
??eb01_ucSelfFlashBlockErase:
?L0031:
; line   204
$DGL	0,24
	mov	a,[hl+1]	; ucStatus 			;[INF] 2, 8
	cmp	a,#00H	; 0 					;[INF] 2, 4
	bnz	$?L0035						;[INF] 2, 6
; line   205
$DGL	0,25
??bb03_ucSelfFlashBlockErase:
; line   206
$DGL	0,26
	movw	ax,#_ucEntryRAM					;[INF] 3, 6
	call	!_FlashEnv					;[INF] 3, 7
; line   207
$DGL	0,27
	movw	bc,#00H	; 0 					;[INF] 3, 6
	br	$?L0030						;[INF] 2, 6
??eb03_ucSelfFlashBlockErase:
?L0035:
; line   209
$DGL	0,29
	mov	a,[hl+1]	; ucStatus 			;[INF] 2, 8
	cmp	a,#01FH	; 31 					;[INF] 2, 4
	bz	$?L0029						;[INF] 2, 6
; line   210
$DGL	0,30
??bb04_ucSelfFlashBlockErase:
; line   212
$DGL	0,32
	movw	bc,#0FFH	; 255 				;[INF] 3, 6
??eb04_ucSelfFlashBlockErase:
??eb00_ucSelfFlashBlockErase:
?L0030:
; line   215
$DGL	0,35
??ef_ucSelfFlashBlockErase:
	pop	ax						;[INF] 1, 4
	pop	ax						;[INF] 1, 4
	pop	hl						;[INF] 1, 4
	ret							;[INF] 1, 6
??ee_ucSelfFlashBlockErase:
; line   227
_ucSelfFlashEEPROMWrite:
$DGL	1,125
	push	hl						;[INF] 1, 4
	push	ax						;[INF] 1, 4
	push	ax						;[INF] 1, 4
	movw	ax,sp						;[INF] 2, 8
	movw	hl,ax						;[INF] 1, 4
??bf_ucSelfFlashEEPROMWrite:
; line   229
$DGL	0,3
	mov	a,[hl+8]	; usAddr 			;[INF] 2, 8
	xch	a,x						;[INF] 1, 2
	mov	a,[hl+9]	; usAddr 			;[INF] 2, 8
	movw	!_WordAddr,ax					;[INF] 3,10
; line   230
$DGL	0,4
	mov	a,[hl+2]	; ucBank 			;[INF] 2, 8
	mov	!_WordAddr+2,a					;[INF] 3, 8
; line   232
$DGL	0,6
?L0041:
; line   233
$DGL	0,7
??bb00_ucSelfFlashEEPROMWrite:
; line   235
$DGL	0,9
	di							;[INF] 2, 6
; line   236
$DGL	0,10
	movw	de,#_ucDataBuf					;[INF] 3, 6
	push	de						;[INF] 1, 4
	mov	a,[hl+10]	; ucNum 			;[INF] 2, 8
	ror	a,1						;[INF] 1, 2
	ror	a,1						;[INF] 1, 2
	and	a,#03FH	; 63 					;[INF] 2, 4
	inc	a						;[INF] 1, 2
	mov	x,#00H	; 0 					;[INF] 2, 4
	xch	a,x						;[INF] 1, 2
	push	ax						;[INF] 1, 4
	movw	ax,#_WordAddr					;[INF] 3, 6
	call	!_EEPROMWrite					;[INF] 3, 7
	pop	ax						;[INF] 1, 4
	pop	ax						;[INF] 1, 4
	mov	a,c						;[INF] 1, 2
	mov	[hl+1],a	; ucStatus 			;[INF] 2, 8
; line   237
$DGL	0,11
	ei							;[INF] 2, 6
; line   238
$DGL	0,12
	mov	a,[hl+1]	; ucStatus 			;[INF] 2, 8
	cmp	a,#00H	; 0 					;[INF] 2, 4
	bnz	$?L0043						;[INF] 2, 6
; line   239
$DGL	0,13
??bb01_ucSelfFlashEEPROMWrite:
; line   240
$DGL	0,14
	movw	bc,#00H	; 0 					;[INF] 3, 6
	br	$?L0042						;[INF] 2, 6
??eb01_ucSelfFlashEEPROMWrite:
?L0043:
; line   242
$DGL	0,16
	mov	a,[hl+1]	; ucStatus 			;[INF] 2, 8
	cmp	a,#01FH	; 31 					;[INF] 2, 4
	bz	$?L0041						;[INF] 2, 6
; line   243
$DGL	0,17
??bb02_ucSelfFlashEEPROMWrite:
; line   245
$DGL	0,19
	mov	b,#00H	; 0 					;[INF] 2, 4
	xch	a,c						;[INF] 1, 2
??eb02_ucSelfFlashEEPROMWrite:
??eb00_ucSelfFlashEEPROMWrite:
?L0042:
; line   248
$DGL	0,22
??ef_ucSelfFlashEEPROMWrite:
	pop	ax						;[INF] 1, 4
	pop	ax						;[INF] 1, 4
	pop	hl						;[INF] 1, 4
	ret							;[INF] 1, 6
??ee_ucSelfFlashEEPROMWrite:
; line   259
_ucSelfFlashWordWrite:
$DGL	1,147
	push	hl						;[INF] 1, 4
	push	ax						;[INF] 1, 4
	push	ax						;[INF] 1, 4
	movw	ax,sp						;[INF] 2, 8
	movw	hl,ax						;[INF] 1, 4
??bf_ucSelfFlashWordWrite:
; line   261
$DGL	0,3
	mov	a,[hl+8]	; usSetAdr 			;[INF] 2, 8
	xch	a,x						;[INF] 1, 2
	mov	a,[hl+9]	; usSetAdr 			;[INF] 2, 8
	movw	!_WordAddr,ax					;[INF] 3,10
; line   262
$DGL	0,4
	mov	a,[hl+2]	; ucBank 			;[INF] 2, 8
	mov	!_WordAddr+2,a					;[INF] 3, 8
; line   263
$DGL	0,5
?L0049:
; line   264
$DGL	0,6
??bb00_ucSelfFlashWordWrite:
; line   266
$DGL	0,8
	di							;[INF] 2, 6
; line   268
$DGL	0,10
	movw	de,#_ucDataBuf					;[INF] 3, 6
	push	de						;[INF] 1, 4
	mov	a,[hl+10]	; ucNum 			;[INF] 2, 8
	mov	x,#00H	; 0 					;[INF] 2, 4
	xch	a,x						;[INF] 1, 2
	decw	ax						;[INF] 1, 4
	mov	c,#04H	; 4 					;[INF] 2, 4
	divuw	c						;[INF] 2,25
	incw	ax						;[INF] 1, 4
	mov	a,#00H	; 0 					;[INF] 2, 4
	push	ax						;[INF] 1, 4
	movw	ax,#_WordAddr					;[INF] 3, 6
	call	!_FlashWordWrite				;[INF] 3, 7
	pop	ax						;[INF] 1, 4
	pop	ax						;[INF] 1, 4
	mov	a,c						;[INF] 1, 2
	mov	[hl+1],a	; ucStatus 			;[INF] 2, 8
; line   269
$DGL	0,11
	ei							;[INF] 2, 6
; line   270
$DGL	0,12
	mov	a,[hl+1]	; ucStatus 			;[INF] 2, 8
	cmp	a,#00H	; 0 					;[INF] 2, 4
	bnz	$?L0051						;[INF] 2, 6
; line   271
$DGL	0,13
??bb01_ucSelfFlashWordWrite:
; line   272
$DGL	0,14
	movw	bc,#00H	; 0 					;[INF] 3, 6
	br	$?L0050						;[INF] 2, 6
??eb01_ucSelfFlashWordWrite:
?L0051:
; line   274

⌨️ 快捷键说明

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