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

📄 eeprom.asm

📁 TC35i收发短信的源代码
💻 ASM
📖 第 1 页 / 共 4 页
字号:
	xch	a,x						;[INF] 1, 2
	mov	[hl+16],a	; pDataAddress 			;[INF] 2, 8
	mov	a,[de]						;[INF] 1, 4
	mov	c,a						;[INF] 1, 2
	mov	a,[hl+4]	; j 				;[INF] 2, 8
	mov	b,a						;[INF] 1, 2
	push	hl						;[INF] 1, 4
	mov	a,c						;[INF] 1, 2
	movw	hl,#_ucDataBuf					;[INF] 3, 6
	mov	[hl+b],a					;[INF] 1, 6
	pop	hl						;[INF] 1, 4
??eb01_ucEEPROMWriteEx:
; line   484
$DGL	0,25
	mov	a,[hl+4]	; j 				;[INF] 2, 8
	inc	a						;[INF] 1, 2
	mov	[hl+4],a	; j 				;[INF] 2, 8
	br	$?L0091						;[INF] 2, 6
?L0092:
; line   488
$DGL	0,29
	movw	ax,#04H	; 4 					;[INF] 3, 6
	push	ax						;[INF] 1, 4
	mov	a,[hl+12]	; usWriteAdr 			;[INF] 2, 8
	add	a,[hl]	; usTopAdr 				;[INF] 1, 4
	xch	a,x						;[INF] 1, 2
	mov	a,[hl+13]	; usWriteAdr 			;[INF] 2, 8
	addc	a,[hl+1]	; usTopAdr 			;[INF] 2, 8
	push	ax						;[INF] 1, 4
	mov	a,[hl+6]	; ucBlock 			;[INF] 2, 8
	mov	c,a						;[INF] 1, 2
	push	hl						;[INF] 1, 4
	movw	hl,#_ucEEPROM_BANK				;[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	!_ucEEPROMWriteDrv				;[INF] 3, 7
	pop	ax						;[INF] 1, 4
	pop	ax						;[INF] 1, 4
	mov	a,c						;[INF] 1, 2
	mov	[hl+3],a	; ucResult 			;[INF] 2, 8
; line   490
$DGL	0,31
	mov	a,[hl+12]	; usWriteAdr 			;[INF] 2, 8
	xch	a,x						;[INF] 1, 2
	mov	a,[hl+13]	; usWriteAdr 			;[INF] 2, 8
	addw	ax,#04H	; 4 					;[INF] 3, 6
	mov	[hl+13],a	; usWriteAdr 			;[INF] 2, 8
	xch	a,x						;[INF] 1, 2
	mov	[hl+12],a	; usWriteAdr 			;[INF] 2, 8
; line   493
$DGL	0,34
	mov	a,[hl+3]	; ucResult 			;[INF] 2, 8
	cmp	a,#00H	; 0 					;[INF] 2, 4
	bz	$?L0094						;[INF] 2, 6
	mov	b,#00H	; 0 					;[INF] 2, 4
	xch	a,c						;[INF] 1, 2
	br	$?L0085						;[INF] 2, 6
?L0094:
??eb00_ucEEPROMWriteEx:
; line   494
$DGL	0,35
	mov	a,[hl+5]	; i 				;[INF] 2, 8
	inc	a						;[INF] 1, 2
	mov	[hl+5],a	; i 				;[INF] 2, 8
	br	$?L0088						;[INF] 2, 6
?L0089:
; line   496
$DGL	0,37
	movw	bc,#00H	; 0 					;[INF] 3, 6
?L0085:
; line   497
$DGL	0,38
??ef_ucEEPROMWriteEx:
	pop	ax						;[INF] 1, 4
	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_ucEEPROMWriteEx:
; line   513
_ucEEPROMWriteDrv:
$DGL	1,260
	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_ucEEPROMWriteDrv:
; line   518
$DGL	0,6
	call	!_SelfFlashModeOn				;[INF] 3, 7
; line   520
$DGL	0,8
	call	!_ucSelfFlashInitialize				;[INF] 3, 7
	inc	c						;[INF] 1, 2
	bnz	$?L0098						;[INF] 2, 6
; line   521
$DGL	0,9
??bb00_ucEEPROMWriteDrv:
; line   522
$DGL	0,10
	call	!_SelfFlashModeOff				;[INF] 3, 7
; line   523
$DGL	0,11
	movw	bc,#0FEH	; 254 				;[INF] 3, 6
	br	$?L0097						;[INF] 2, 6
??eb00_ucEEPROMWriteDrv:
?L0098:
; line   526
$DGL	0,14
	mov	a,#03H	; 3 					;[INF] 2, 4
	mov	[hl+1],a	; ucCount 			;[INF] 2, 8
; line   528
$DGL	0,16
?L0100:
; line   529
$DGL	0,17
??bb01_ucEEPROMWriteDrv:
; line   532
$DGL	0,20
	mov	a,[hl+10]	; ucWriteLen 			;[INF] 2, 8
	dec	a						;[INF] 1, 2
	mov	x,#00H	; 0 					;[INF] 2, 4
	xch	a,x						;[INF] 1, 2
	push	ax						;[INF] 1, 4
	mov	a,[hl+8]	; usWriteAdr 			;[INF] 2, 8
	xch	a,x						;[INF] 1, 2
	mov	a,[hl+9]	; usWriteAdr 			;[INF] 2, 8
	push	ax						;[INF] 1, 4
	mov	a,[hl+2]	; ucBlock 			;[INF] 2, 8
	mov	x,#00H	; 0 					;[INF] 2, 4
	xch	a,x						;[INF] 1, 2
	call	!_ucSelfFlashEEPROMWrite			;[INF] 3, 7
	pop	ax						;[INF] 1, 4
	pop	ax						;[INF] 1, 4
	mov	a,c						;[INF] 1, 2
	mov	[hl],a	; ucResult 				;[INF] 1, 4
; line   534
$DGL	0,22
	cmp	a,#00H	; 0 					;[INF] 2, 4
	bz	$?L0101						;[INF] 2, 6
; line   535
$DGL	0,23
??bb02_ucEEPROMWriteDrv:
; line   536
$DGL	0,24
??eb02_ucEEPROMWriteDrv:
; line   538
$DGL	0,26
	mov	a,[hl]	; ucResult 				;[INF] 1, 4
	cmp	a,#01EH	; 30 					;[INF] 2, 4
	bz	$?L0100						;[INF] 2, 6
; line   539
$DGL	0,27
??bb03_ucEEPROMWriteDrv:
; line   540
$DGL	0,28
	mov	a,[hl+1]	; ucCount 			;[INF] 2, 8
	dec	a						;[INF] 1, 2
	mov	[hl+1],a	; ucCount 			;[INF] 2, 8
; line   541
$DGL	0,29
	mov	a,#00H	; 0 					;[INF] 2, 4
	cmp	a,[hl+1]	; ucCount 			;[INF] 2, 8
	bc	$?L0100						;[INF] 2, 6
; line   542
$DGL	0,30
??bb04_ucEEPROMWriteDrv:
; line   543
$DGL	0,31
	mov	a,#0F6H	; 246 					;[INF] 2, 4
	mov	[hl],a	; ucResult 				;[INF] 1, 4
; line   544
$DGL	0,32
??eb04_ucEEPROMWriteDrv:
??eb03_ucEEPROMWriteDrv:
??eb01_ucEEPROMWriteDrv:
?L0101:
; line   549
$DGL	0,37
	call	!_SelfFlashModeOff				;[INF] 3, 7
; line   551
$DGL	0,39
	mov	a,[hl]	; ucResult 				;[INF] 1, 4
	mov	b,#00H	; 0 					;[INF] 2, 4
	xch	a,c						;[INF] 1, 2
?L0097:
; line   552
$DGL	0,40
??ef_ucEEPROMWriteDrv:
	pop	ax						;[INF] 1, 4
	pop	ax						;[INF] 1, 4
	pop	hl						;[INF] 1, 4
	ret							;[INF] 1, 6
??ee_ucEEPROMWriteDrv:
; line   567
_usEEPROMBlankAdrSearchEx:
$DGL	1,291
	push	hl						;[INF] 1, 4
	push	ax						;[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_usEEPROMBlankAdrSearchEx:
; line   572
$DGL	0,6
	mov	a,[hl+6]	; 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+2],a	; usTopAdr 			;[INF] 2, 8
	xch	a,x						;[INF] 1, 2
	mov	[hl+1],a	; usTopAdr 			;[INF] 2, 8
; line   575
$DGL	0,9
	mov	[hl+3],a	; usCurrAdr 			;[INF] 2, 8
	xch	a,x						;[INF] 1, 2
	mov	[hl+4],a	; usCurrAdr 			;[INF] 2, 8
; line   576
$DGL	0,10
?L0110:
	mov	a,[hl+3]	; usCurrAdr 			;[INF] 2, 8
	xch	a,x						;[INF] 1, 2
	mov	a,[hl+4]	; usCurrAdr 			;[INF] 2, 8
	add	a,#04H	; 4 					;[INF] 2, 4
	cmp	a,[hl+4]	; usCurrAdr 			;[INF] 2, 8
	bnz	$?L0112						;[INF] 2, 6
	xch	a,x						;[INF] 1, 2
	cmp	a,[hl+3]	; usCurrAdr 			;[INF] 2, 8
?L0112:
	bc	$?L0111						;[INF] 2, 6
	bz	$?L0111						;[INF] 2, 6
; line   577
$DGL	0,11
??bb00_usEEPROMBlankAdrSearchEx:
; line   578
$DGL	0,12
	mov	a,[hl+3]	; usCurrAdr 			;[INF] 2, 8
	xch	a,x						;[INF] 1, 2
	mov	a,[hl+4]	; usCurrAdr 			;[INF] 2, 8
	call	!_ucBlankBlock					;[INF] 3, 7
	inc	c						;[INF] 1, 2
	dec	c						;[INF] 1, 2
	bnz	$?L0113						;[INF] 2, 6
; line   579
$DGL	0,13
??bb01_usEEPROMBlankAdrSearchEx:
; line   580
$DGL	0,14
	mov	a,[hl+3]	; usCurrAdr 			;[INF] 2, 8
	sub	a,[hl+1]	; usTopAdr 			;[INF] 2, 8
	xch	a,x						;[INF] 1, 2
	mov	a,[hl+4]	; usCurrAdr 			;[INF] 2, 8
	subc	a,[hl+2]	; usTopAdr 			;[INF] 2, 8
	movw	bc,ax						;[INF] 1, 4
	br	$?L0109						;[INF] 2, 6
??eb01_usEEPROMBlankAdrSearchEx:
?L0113:
; line   583
$DGL	0,17
	mov	a,[hl+3]	; usCurrAdr 			;[INF] 2, 8
	xch	a,x						;[INF] 1, 2
	mov	a,[hl+4]	; usCurrAdr 			;[INF] 2, 8
	addw	ax,#04H	; 4 					;[INF] 3, 6
	mov	[hl+4],a	; usCurrAdr 			;[INF] 2, 8
	xch	a,x						;[INF] 1, 2
	mov	[hl+3],a	; usCurrAdr 			;[INF] 2, 8
??eb00_usEEPROMBlankAdrSearchEx:
	br	$?L0110						;[INF] 2, 6
?L0111:
; line   586
$DGL	0,20
	movw	bc,#00H	; 0 					;[INF] 3, 6
?L0109:
; line   587
$DGL	0,21
??ef_usEEPROMBlankAdrSearchEx:
	pop	ax						;[INF] 1, 4
	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_usEEPROMBlankAdrSearchEx:

@@CALF	CSEG	FIXED
	END


; *** Code Information ***
;
; $FILE E:\WorkDir\SMSTransfer\SiemensTC35i\Eeprom.c
;
; $FUNC EnableFLMD(27)
;	void=(void)
;	CODE SIZE= 5 bytes, CLOCK_SIZE= 14 clocks, STACK_SIZE= 0 bytes
;
; $FUNC DisableFLMD(46)
;	void=(void)
;	CODE SIZE= 5 bytes, CLOCK_SIZE= 14 clocks, STACK_SIZE= 0 bytes
;
; $FUNC ucUseProhibitionBlock(59)
;	bc=(pointer p:ax)
;	CODE SIZE= 45 bytes, CLOCK_SIZE= 138 clocks, STACK_SIZE= 2 bytes
;
; $FUNC ucEffectiveBlock(74)
;	bc=(pointer p:ax)
;	CODE SIZE= 45 bytes, CLOCK_SIZE= 138 clocks, STACK_SIZE= 2 bytes
;
; $FUNC IsBlockValid(89)
;	bc=(unsigned char ucBlock:x)
;	CODE SIZE= 43 bytes, CLOCK_SIZE= 140 clocks, STACK_SIZE= 10 bytes
;
; $CALL usBlockToAddress(93)
;	bc=(unsigned short:ax)
;
; $CALL ucEffectiveBlock(95)
;	bc=(pointer:ax)
;
; $FUNC ucBlankBlock(109)
;	bc=(pointer p:ax)
;	CODE SIZE= 41 bytes, CLOCK_SIZE= 130 clocks, STACK_SIZE= 2 bytes
;
; $FUNC SelfFlashModeOn(127)
;	void=(void)
;	CODE SIZE= 11 bytes, CLOCK_SIZE= 32 clocks, STACK_SIZE= 2 bytes
;
; $CALL EnableFLMD(128)
;	void=(void)
;
; $CALL FlashStart(131)
;	void=(void)
;
; $FUNC SelfFlashModeOff(143)
;	void=(void)
;	CODE SIZE= 11 bytes, CLOCK_SIZE= 32 clocks, STACK_SIZE= 2 bytes
;
; $CALL FlashEnd(145)
;	void=(void)
;
; $CALL DisableFLMD(148)
;	void=(void)
;
; $FUNC ucSelfFlashInitialize(164)
;	bc=(void)
;	CODE SIZE= 22 bytes, CLOCK_SIZE= 54 clocks, STACK_SIZE= 2 bytes
;
; $CALL FlashEnv(165)
;	void=(unsigned short:ax)
;
; $CALL CheckFLMD(166)
;	bc=(void)
;
; $FUNC ucSelfFlashBlockErase(181)
;	bc=(unsigned char ucBank:x, unsigned char ucBlock:[sp+2])
;	CODE SIZE= 101 bytes, CLOCK_SIZE= 297 clocks, STACK_SIZE= 10 bytes
;
; $CALL FlashBlockBlankCheck(188)
;	bc=(int:ax, int:[sp+2])
;
; $CALL FlashBlockErase(195)
;	bc=(int:ax, int:[sp+2])
;
; $CALL FlashEnv(206)
;	void=(unsigned short:ax)
;
; $FUNC ucSelfFlashEEPROMWrite(227)
;	bc=(unsigned char ucBank:x, unsigned short usAddr:[sp+2], 
;	    unsigned char ucNum:[sp+4])
;	CODE SIZE= 73 bytes, CLOCK_SIZE= 221 clocks, STACK_SIZE= 12 bytes
;
; $CALL EEPROMWrite(236)
;	bc=(pointer:ax, int:[sp+2], unsigned short:[sp+4])
;
; $FUNC ucSelfFlashWordWrite(259)
;	bc=(unsigned char ucBank:x, unsigned short usSetAdr:[sp+2], 
;	    unsigned char ucNum:[sp+4])
;	CODE SIZE= 76 bytes, CLOCK_SIZE= 252 clocks, STACK_SIZE= 12 bytes
;
; $CALL FlashWordWrite(268)
;	bc=(pointer:ax, int:[sp+2], unsigned short:[sp+4])
;
; $FUNC usBlockToAddress(288)
;	bc=(unsigned short usBlock:ax)
;	CODE SIZE= 14 bytes, CLOCK_SIZE= 36 clocks, STACK_SIZE= 0 bytes
;
; $FUNC ucEEPROMInitEx(306)
;	bc=(unsigned char ucBlock:x)
;	CODE SIZE= 230 bytes, CLOCK_SIZE= 653 clocks, STACK_SIZE= 14 bytes
;
; $CALL usBlockToAddress(319)
;	bc=(unsigned short:ax)
;
; $CALL SelfFlashModeOn(322)
;	void=(void)
;
; $CALL ucSelfFlashInitialize(325)
;	bc=(void)
;
; $CALL SelfFlashModeOff(327)
;	void=(void)
;
; $CALL ucSelfFlashBlockErase(336)
;	bc=(int:ax, int:[sp+2])
;
; $CALL SelfFlashModeOff(342)
;	void=(void)
;
; $CALL usBlockToAddress(355)
;	bc=(unsigned short:ax)
;
; $CALL SelfFlashModeOn(364)
;	void=(void)
;
; $CALL ucSelfFlashInitialize(366)
;	bc=(void)
;
; $CALL SelfFlashModeOff(368)
;	void=(void)
;
; $CALL ucSelfFlashEEPROMWrite(372)
;	bc=(int:ax, unsigned short:[sp+2], int:[sp+4])
;
; $CALL SelfFlashModeOff(375)
;	void=(void)
;
; $CALL SelfFlashModeOff(379)
;	void=(void)
;
; $FUNC ucEEPROMReadEx(398)
;	bc=(unsigned char ucBlock:x, unsigned short usReadAdr:[sp+2], 
;	    unsigned short usReadLen:[sp+4], pointer pDataAddress:[sp+6])
;	CODE SIZE= 122 bytes, CLOCK_SIZE= 409 clocks, STACK_SIZE= 12 bytes
;
; $CALL usBlockToAddress(406)
;	bc=(unsigned short:ax)
;
; $FUNC ucReadOneByte(432)
;	bc=(unsigned char ucBlock:x, unsigned short usReadAdr:[sp+2])
;	CODE SIZE= 50 bytes, CLOCK_SIZE= 171 clocks, STACK_SIZE= 10 bytes
;
; $CALL usBlockToAddress(437)
;	bc=(unsigned short:ax)
;
; $FUNC ucEEPROMWriteEx(460)
;	bc=(unsigned char ucBlock:x, unsigned short usWriteAdr:[sp+2], 
;	    unsigned short usWriteLen:[sp+4], pointer pDataAddress:[sp+6])
;	CODE SIZE= 184 bytes, CLOCK_SIZE= 611 clocks, STACK_SIZE= 16 bytes
;
; $CALL usBlockToAddress(468)
;	bc=(unsigned short:ax)
;
; $CALL ucEEPROMWriteDrv(488)
;	bc=(int:ax, unsigned short:[sp+2], int:[sp+4])
;
; $FUNC ucEEPROMWriteDrv(513)
;	bc=(unsigned char ucBlock:x, unsigned short usWriteAdr:[sp+2], 
;	    unsigned char ucWriteLen:[sp+4])
;	CODE SIZE= 86 bytes, CLOCK_SIZE= 257 clocks, STACK_SIZE= 12 bytes
;
; $CALL SelfFlashModeOn(518)
;	void=(void)
;
; $CALL ucSelfFlashInitialize(520)
;	bc=(void)
;
; $CALL SelfFlashModeOff(522)
;	void=(void)
;
; $CALL ucSelfFlashEEPROMWrite(532)
;	bc=(int:ax, unsigned short:[sp+2], int:[sp+4])
;
; $CALL SelfFlashModeOff(549)
;	void=(void)
;
; $FUNC usEEPROMBlankAdrSearchEx(567)
;	bc=(unsigned char ucBlock:x)
;	CODE SIZE= 100 bytes, CLOCK_SIZE= 332 clocks, STACK_SIZE= 12 bytes
;
; $CALL usBlockToAddress(572)
;	bc=(unsigned short:ax)
;
; $CALL ucBlankBlock(578)
;	bc=(pointer:ax)

; Target chip : uPD78F0513_44
; Device file : V2.10 

⌨️ 快捷键说明

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