; Asm codes generated by Shanghai Haier C Compiler
; HRCO, Ver: 1.0,0137

#INCLUDE       	<ES7P169C.INC>
#INCLUDE       	<OPERATION.INC>
	PUBLIC         	_#T0
	EXTERN         	MUL_TEMP
	EXTERN         	MUL_TEMP
	PUBLIC         	_dataerr
	PUBLIC         	_CallFlashEn
	PUBLIC         	_FlashEwEn
	PUBLIC         	_RAMclear
	PUBLIC         	_GPIOInit
	PUBLIC         	_StartIAP
	PUBLIC         	_DataFlashErsPage
	PUBLIC         	_DataFlashErsPageDATA
	PUBLIC         	_DataFlashRdData
	PUBLIC         	_DataFlashRdDataDATA
	PUBLIC         	_DataFlashWrData
	PUBLIC         	_DataFlashWrDataDATA
	PUBLIC         	_main
_DataFlashErsPage_gie_bk_9	EQU            	_DataFlashErsPageDATA + 0X4		; Bank 0
_DataFlashErsPage_#T20409_9	EQU            	_DataFlashErsPageDATA + 0X5		; Bank 0
_DataFlashErsPage_#T20417_9	EQU            	_DataFlashErsPageDATA + 0X5		; Bank 0
_DataFlashRdData_data_12	EQU            	_DataFlashRdDataDATA + 0X0		; Bank 0
_DataFlashRdData_gie_bk_12	EQU            	_DataFlashRdDataDATA + 0X4		; Bank 0
_DataFlashRdData_#T20524_12	EQU            	_DataFlashRdDataDATA + 0X2		; Bank 0
_DataFlashRdData_#T20532_12	EQU            	_DataFlashRdDataDATA + 0X2		; Bank 0
_DataFlashRdData_#T20590_12	EQU            	_DataFlashRdDataDATA + 0X0		; Bank 0
_DataFlashRdData_#T20593_12	EQU            	_DataFlashRdDataDATA + 0X5		; Bank 0
_DataFlashRdData_#T20600_12	EQU            	_DataFlashRdDataDATA + 0X0		; Bank 0
_DataFlashRdData_#T20603_12	EQU            	_DataFlashRdDataDATA + 0X9		; Bank 0
_DataFlashRdData_#T20604_12	EQU            	_DataFlashRdDataDATA + 0X0		; Bank 0
_DataFlashRdData_#T20611_12	EQU            	_DataFlashRdDataDATA + 0X5		; Bank 0
_DataFlashRdData_#T20614_12	EQU            	_DataFlashRdDataDATA + 0X9		; Bank 0
_DataFlashRdData_#T20615_12	EQU            	_DataFlashRdDataDATA + 0X5		; Bank 0
_DataFlashRdData_#T20618_12	EQU            	_DataFlashRdDataDATA + 0X9		; Bank 0
_DataFlashWrData_rmdh_15	EQU            	_DataFlashWrDataDATA + 0X2		; Bank 0
_DataFlashWrData_rmdl_15	EQU            	_DataFlashWrDataDATA + 0X3		; Bank 0
_DataFlashWrData_rmd1h_15	EQU            	_DataFlashWrDataDATA + 0X4		; Bank 0
_DataFlashWrData_rmd1l_15	EQU            	_DataFlashWrDataDATA + 0X5		; Bank 0
_DataFlashWrData_gie_bk_15	EQU            	_DataFlashWrDataDATA + 0X8		; Bank 0
_DataFlashWrData_#T20642_15	EQU            	_DataFlashWrDataDATA + 0X9		; Bank 0
_DataFlashWrData_reault_15	EQU            	_DataFlashWrDataDATA + 0X0		; Bank 0
_DataFlashWrData_#T20650_15	EQU            	_DataFlashWrDataDATA + 0X9		; Bank 0
_DataFlashWrData_#T20991_15	EQU            	_DataFlashWrDataDATA + 0X2		; Bank 0
_main_dtflashaddr_20	EQU            	_mainDATA + 0X0		; Bank 0
_main_#T21054_22	EQU            	_mainDATA + 0X2		; Bank 0
_main_#T21064_22	EQU            	_mainDATA + 0X2		; Bank 0
_main_#T21128_24	EQU            	_mainDATA + 0X2		; Bank 0
#TMP	EQU            	?_TMP+ 0X4		; Bank 0
?_TMP_RET	EQU            	?_TMP		; Bank 0
_MULA_0#sh	EQU            	(MULA - 0X6080) % 0X40 + 0xC0		; Bank 0
_MULB_0#sh	EQU            	(MULB - 0X6080) % 0X40 + 0xC0		; Bank 0
_MULL_0#sh	EQU            	(MULL - 0X6080) % 0X40 + 0xC0		; Bank 0
_MULH_0#sh	EQU            	(MULH - 0X6080) % 0X40 + 0xC0		; Bank 0
_DIVEL_0#sh	EQU            	(DIVEL - 0X6080) % 0X40 + 0xC0		; Bank 0
_DIVEM_0#sh	EQU            	(DIVEM - 0X6080) % 0X40 + 0xC0		; Bank 0
_DIVSL_0#sh	EQU            	(DIVSL - 0X6080) % 0X40 + 0xC0		; Bank 0
_DIVSH_0#sh	EQU            	(DIVSH - 0X6080) % 0X40 + 0xC0		; Bank 0
_DIVQL_0#sh	EQU            	(DIVQL - 0X6080) % 0X40 + 0xC0		; Bank 0
_DIVQM_0#sh	EQU            	(DIVQM - 0X6080) % 0X40 + 0xC0		; Bank 0
_DIVRL_0#sh	EQU            	(DIVRL - 0X6080) % 0X40 + 0xC0		; Bank 0
_DIVRH_0#sh	EQU            	(DIVRH - 0X6080) % 0X40 + 0xC0		; Bank 0
_DIVC_0#sh	EQU            	(DIVC - 0X6080) % 0X40 + 0xC0		; Bank 0
_DIVEU_0#sh	EQU            	(DIVEU - 0X6080) % 0X40 + 0xC0		; Bank 0
_DIVEH_0#sh	EQU            	(DIVEH - 0X6080) % 0X40 + 0xC0		; Bank 0
_FRAH_0#sh	EQU            	(FRAH - 0X6080) % 0X40 + 0xC0		; Bank 0
_FRAL_0#sh	EQU            	(FRAL - 0X6080) % 0X40 + 0xC0		; Bank 0
	_DESC          	RAMclear,0X0,0X0
RAMclear#	CSEG           
_RAMclear
; /*******************************************************
; *Copyright(C),2020,Shanghai Eastsoft Microelectronics Co.,Ltd.
; *文件名：iap_dataflash.c
; *作  者：AE Team
; *版  本：v1.1，编译于iDesigner(v4.2.3.166) + 工具链HRCC(v1.2.0.106)
; *日  期：2020/12/18
; *描  述：数据区IAP操作，数据区地址：0xC000~0xC1FF
;         IAP擦除以页(256个地址单元)为单位，对一个地址执行擦除动作即是擦除这个地址所在的一整页。
;         IAP写入以一个地址单元为单位(一个地址单元对应一个Word)。每页擦除时间至少2ms，单个地址编程时间至少25us。
;         增加IAP擦除编程软件锁，防止程序跑飞误擦程序。
;         注意：建议IAP操作前关闭WDT(配置字选择WDTEN为Disable)，若使能WDT，请设置合理的WDT溢出时间，并合理清狗。
; *备  注：本软件仅供学习和演示使用，对用户直接引用代码所带来的风险或后果不承担任何法律责任。
; *******************************************************/
; #include <hic.h>
; #define CLRWDT()   {__Asm CWDT;}        //宏定义清狗指令
; #define STARTADDR    0xC000     //宏定义数据区IAP操作起始地址
; #define ENDADDR      0xC07F     //宏定义数据区IAP操作结束地址
; #define WRDATA       0x87654321     //宏定义待写入数据
; unsigned char dataerr = 0;      //0：写入与读出相等，1：写入与读出不等
; unsigned char CallFlashEn, FlashEwEn; //软件锁变量
; /******************************************************
; 函数名：void RAMclear(void)
; 描  述：RAM区数据清零，RAM区地址0x0000~0x03FF
; 输入值：无
; 输出值：无
; 返回值：无
; *******************************************************/
; void RAMclear(void)
; {
#line 35	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     for (IAAH = 0; IAAH <= 0x03; IAAH++)
	CLR            	BKSR
;   35:(    ASGN_1,          0 ,            ,      IAAH)

; ITemplate_CLR1_4_TMP
	CLR            	_IAAH_0
;   35:(     LABEL,    #L20275 ,            ,          )

; ITemplate_LABEL
#L20275
;   35:(    JGT_1U,       IAAH ,          3 ,   #L20352)

; ITemplate_JGT1_4U
	MOV            	_IAAH_0,	0x0
	SUBI           	0x3
	JBS            	PSW,	0x0
	GOTO           	#L20352
;     {
#line 37	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;         for (IAAL = 0; IAAL < 0xFF; IAAL++)
;   37:(    ASGN_1,          0 ,            ,      IAAL)

; ITemplate_CLR1_4_TMP
	CLR            	_IAAL_0
;   37:(     LABEL,    #L20292 ,            ,          )

; ITemplate_LABEL
#L20292
;   37:(    JGE_1U,       IAAL ,        255 ,   #L20293)

; ITemplate_JGE1_4U
	MOVI           	0xff
	SUB            	_IAAL_0,	0x0
	JBC            	PSW,	0x0
	GOTO           	#L20293
#line 38	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;             IAD = 0x00;
;   38:(    ASGN_1,          0 ,            ,       IAD)

; ITemplate_CLR1_4_TMP
	CLR            	_IAD_0
;   37:(     ADD_1,       IAAL ,          1 ,      IAAL)

; ITemplate_INC_1_TMP
	INC            	_IAAL_0
;   38:(       JMP,            ,            ,   #L20292)

; ITemplate_JMP
	GOTO           	#L20292
;   38:(     LABEL,    #L20293 ,            ,          )

; ITemplate_LABEL
#L20293
#line 40	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;         IAD = 0x00;
;   40:(    ASGN_1,          0 ,            ,       IAD)

; ITemplate_CLR1_4_TMP
	CLR            	_IAD_0
;   35:(     ADD_1,       IAAH ,          1 ,      IAAH)

; ITemplate_INC_1_TMP
	INC            	_IAAH_0
#line 41	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     }
;   41:(       JMP,            ,            ,   #L20275)

; ITemplate_JMP
	GOTO           	#L20275
#line 42	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ; }
;   42:(     LABEL,    #L20352 ,            ,          )

; ITemplate_LABEL
#L20352
;   42:(       RET,            ,            ,          )

; ITemplate_RET
	RET            			; Bank 0		; ShBank 0
	_DESC          	GPIOInit,0X0,0X0
GPIOInit#	CSEG           
_GPIOInit
; /******************************************************
; 函数名：void GPIOInit(void)
; 描  述：首先初始化所有未用到的IO口为输出低电平
; 输入值：无
; 输出值：无
; 返回值：无
; *******************************************************/
; void GPIOInit(void)
; {
#line 53	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     ANSH = 0xFF;        //选择对应端口为数字IO功能
	CLR            	BKSR
;   53:(    ASGN_1,        255 ,            ,      ANSH)

; ITemplate_ASGN1_4_R
	MOVI           	0xff
	MOVA           	_ANSH_0
#line 54	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     ANSL = 0xFF;        //选择对应端口为数字IO功能
;   54:(    ASGN_1,        255 ,            ,      ANSL)

; ITemplate_ASGN1_4_R
	MOVI           	0xff
	MOVA           	_ANSL_0
#line 55	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     PAT = 0x00;         //所有IO设为输出低电平
;   55:(    ASGN_1,          0 ,            ,       PAT)

; ITemplate_CLR1_4_TMP
	CLR            	_PAT_0
#line 56	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     PBT = 0x00;
;   56:(    ASGN_1,          0 ,            ,       PBT)

; ITemplate_CLR1_4_TMP
	CLR            	_PBT_0
#line 57	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     PCT = 0x00;
;   57:(    ASGN_1,          0 ,            ,       PCT)

; ITemplate_CLR1_4_TMP
	CLR            	_PCT_0
#line 58	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     PA = 0x00;
;   58:(    ASGN_1,          0 ,            ,        PA)

; ITemplate_CLR1_4_TMP
	CLR            	_PA_0
#line 59	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     PB = 0x00;
;   59:(    ASGN_1,          0 ,            ,        PB)

; ITemplate_CLR1_4_TMP
	CLR            	_PB_0
#line 60	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     PC = 0x00;
;   60:(    ASGN_1,          0 ,            ,        PC)

; ITemplate_CLR1_4_TMP
	CLR            	_PC_0
#line 61	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ; }
;   61:(       RET,            ,            ,          )

; ITemplate_RET
	RET            			; Bank 0		; ShBank 0
	_DESC          	StartIAP,0X0,0X0
StartIAP#	CSEG           
_StartIAP
; static volatile unsigned int section8 FRAN @ 0xFF8E;
; static volatile unsigned int section8 FRA  @ 0xFF90;
; /******************************************************
; 函数名：void StartIAP(void)
; 描  述：开始IAP操作。注意：IAP固定操作格式，使用时不可改变
; 输入值：无
; 输出值：无
; 返回值：无
; *******************************************************/
; void StartIAP(void)
; {
#line 75	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     __asm
	CLR            	BKSR
; ITemplate_LABEL
;-----------Embedded Asm--------------
	
#line 77 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c
        MOVI 0x55
#line 78 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c
        MOVA ROMCH
#line 79 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c
        MOVI 0xFF     
#line 80 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c
        SECSEL _FlashEwEn% 0x80
#line 81 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c
        XOR _FlashEwEn% 0x80, 0 
#line 82 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c
        SECSEL _CallFlashEn% 0x80
#line 83 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c
        XOR _CallFlashEn% 0x80, 0 
#line 84 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c
        JBS PSW, Z 
#line 85 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c
        GOTO $+3
#line 86 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c
        NOP
#line 87 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c
        MOVI 0xAA
#line 88 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c
        MOVA ROMCH
#line 89 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c
        MOVI 0xFF     
#line 90 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c
        SECSEL _FlashEwEn% 0x80
#line 91 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c
        XOR _FlashEwEn% 0x80, 0 
#line 92 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c
        SECSEL _CallFlashEn% 0x80
#line 93 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c
        XOR _CallFlashEn% 0x80, 0 
#line 94 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c
        JBS PSW, Z 
#line 95 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c
        GOTO $+3
#line 96 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c
        NOP
#line 97 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c
        BSS ROMCL, WR    
#line 98 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c
        JBC ROMCL, WR
#line 99 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c
        goto $-1         
#line 100 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c
    
;-------------------------------------
;     {
;         MOVI 0x55
;         MOVA ROMCH
;         MOVI 0xFF     //8个NOP代替语句开始
;         SECSEL &FlashEwEn &% 0x80//选择变量所在的section
;         XOR &FlashEwEn &% 0x80, 0 //0xFF xor 0xAA = 0x55
;         SECSEL &CallFlashEn &% 0x80//选择变量所在的section
;         XOR &CallFlashEn &% 0x80, 0 //若CallFlashEn在调用函数前为0x55，0x55 xor 0x55 = 0x00
;         JBS PSW, Z //如果运算结果为0x00，则执行正确，跳至下一个NOP
;         GOTO $+3
;         NOP//8个NOP代替语句结束
;         MOVI 0xAA
;         MOVA ROMCH
;         MOVI 0xFF     //8个NOP代替语句开始
;         SECSEL &FlashEwEn &% 0x80//选择变量所在的section
;         XOR &FlashEwEn &% 0x80, 0 //0xFF xor 0xAA = 0x55
;         SECSEL &CallFlashEn &% 0x80//选择变量所在的section
;         XOR &CallFlashEn &% 0x80, 0 //若CallFlashEn在调用函数前为0x55，0x55 xor 0x55 = 0x00
;         JBS PSW, Z //如果运算结果为0x00，则执行正确，跳至下一个NOP
;         GOTO $+3
;         NOP//8个NOP代替语句结束
;         BSS ROMCL, WR    //触发编程操作
;         JBC ROMCL, WR
;         goto $-1         //等待操作结束
;     }
#line 101	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ; }
;  101:(       RET,            ,            ,          )

; ITemplate_RET
	RET            			; Bank 0		; ShBank 0
	_DESC          	DataFlashErsPage,0X3,0X0,StartIAP

SECTION1DataFlashErsPage	UNINTIAL       	0		; Bank 0
	ORG            	0X87		; Bank 0
_DataFlashErsPageDATA	RSEG           	0X6		; Bank 0
DataFlashErsPage#	CSEG           
_DataFlashErsPage
; /*******************************************************
; 函数名：void DataFlashErsPage(void)
; 描  述：擦除DataFlash整页(256 word)，地址范围：0xC000~0xC1FF
; 输入值：DataFlash地址addr，DataFlash取反地址addri
; 输出值：无
; 返回值：无
; *******************************************************/
; void DataFlashErsPage(unsigned int addr, unsigned int addri)
; {
#line 112	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     unsigned char gie_bk = GIE;     //备份GIE
	CLR            	BKSR
;  112:(    CVB_UC,        GIE ,            ,   #T20409)

; ITemplate_CVB_UC
	MOVI           	0x0
	JBC            	(_GIE_0)/8,	(_GIE_0)%8
	MOVI           	0x1
	SECTION        	0x1
	MOVA           	(_DataFlashErsPage_#T20409_9) & 0X7F		; Bank 1
;  112:(    ASGN_1,    #T20409 ,            ,    gie_bk)

; ITemplate_ASGN1_4_R
	MOV            	(_DataFlashErsPage_#T20409_9) & 0X7F,	0x0		; Bank 1
	MOVA           	(_DataFlashErsPage_gie_bk_9) & 0X7F		; Bank 1
#line 113	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     CLRWDT();
; ITemplate_LABEL
;-----------Embedded Asm--------------
	CWDT
;-------------------------------------
#line 115	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     while (GIE == 1)GIE = 0;           //启动IAP前关闭全局中断
;  115:(     LABEL,    #L20410 ,            ,          )

; ITemplate_LABEL
#L20410
;  115:(    CVB_SC,        GIE ,            ,   #T20417)

; ITemplate_CVB_UC
	MOVI           	0x0
	JBC            	(_GIE_0)/8,	(_GIE_0)%8
	MOVI           	0x1
	MOVA           	(_DataFlashErsPage_#T20417_9) & 0X7F		; Bank 1
;  115:(    JNEQ_1,          1 ,    #T20417 ,   #L20412)

; ITemplate_JNEQ1_4
	MOV            	(_DataFlashErsPage_#T20417_9) & 0X7F,	0x0		; Bank 1
	XORI           	0x1
	JBS            	PSW,	0x2
	GOTO           	#L20412
;  115:(    ASGN_0,          0 ,            ,       GIE)

; ITemplate_CLR_0_TMP
	BCC            	(_GIE_0)/8,	(_GIE_0)%8
;  115:(       JMP,            ,            ,   #L20410)

; ITemplate_JMP
	GOTO           	#L20410
;  115:(     LABEL,    #L20412 ,            ,          )

; ITemplate_LABEL
#L20412
#line 117	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     FlashEwEn = 0xAA;//设置软件锁变量
;  117:(    ASGN_1,        170 ,            , FlashEwEn)

; ITemplate_ASGN1_4_R
	MOVI           	0xaa
	MOVA           	(_FlashEwEn) & 0X7F		; Bank 1
#line 119	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     FPEE = 1;           //存储器擦除模式
;  119:(    ASGN_0,          1 ,            ,      FPEE)

; ITemplate_SET_0_TMP
	BSS            	(_FPEE_0)/8,	(_FPEE_0)%8
#line 120	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     FRAH = addr >> 8;
;  120:(    RSH_2U,       addr ,          8 ,      FRAH)

; ITemplate_RSH1_4U
	MOVI           	0x8
	ADDI           	0x1
	MOVAR          	?_TMP		; Bank 0
	MOV            	(_DataFlashErsPageDATA+0X0) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x1		; Bank 0
	MOV            	(_DataFlashErsPageDATA+0X0+0x1) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x2		; Bank 0
	MOVRA          	?_TMP		; Bank 0
	GOTO           	#L21162
#L21163
	BCC            	PSW,	0x0
	SECTION        	0x0
	RR             	(?_TMP+0x2) & 0X7F,	0x1		; Bank 0
	RR             	(?_TMP+0x1) & 0X7F,	0x1		; Bank 0
#L21162
	ADDI           	0xff
	JBS            	PSW,	0x2
	GOTO           	#L21163
	SECTION        	0x0
	MOV            	(?_TMP+0x1) & 0X7F,	0x0		; Bank 0
	MOVA           	_FRAH_0
#line 121	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     FRAL = addr;
;  121:(   CVUI_UC,       addr ,            ,      FRAL)

; ITemplate_CVSMT
	MOVRA          	_DataFlashErsPageDATA+0X0		; Bank 1
	MOVA           	_FRAL_0
#line 122	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     FRAHN = addri >> 8;    //IAP擦除/编程必须满足地址取反逻辑
;  122:(    RSH_2U,      addri ,          8 ,     FRAHN)

; ITemplate_RSH1_4U
	MOVI           	0x8
	ADDI           	0x1
	MOVA           	(?_TMP) & 0X7F		; Bank 0
	MOVRA          	_DataFlashErsPageDATA+0X2		; Bank 1
	MOVA           	(?_TMP+0x1) & 0X7F		; Bank 0
	MOVRA          	_DataFlashErsPageDATA+0X2+0x1		; Bank 1
	MOVA           	(?_TMP+0x2) & 0X7F		; Bank 0
	MOV            	(?_TMP) & 0X7F,	0x0		; Bank 0
	GOTO           	#L21164
#L21165
	BCC            	PSW,	0x0
	RR             	(?_TMP+0x2) & 0X7F,	0x1		; Bank 0
	RR             	(?_TMP+0x1) & 0X7F,	0x1		; Bank 0
#L21164
	ADDI           	0xff
	JBS            	PSW,	0x2
	GOTO           	#L21165
	MOV            	(?_TMP+0x1) & 0X7F,	0x0		; Bank 0
	MOVA           	_FRAHN_0
#line 123	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     FRALN = addri;
;  123:(   CVUI_UC,      addri ,            ,     FRALN)

; ITemplate_CVSMT
	MOVRA          	_DataFlashErsPageDATA+0X2		; Bank 1
	MOVA           	_FRALN_0
#line 125	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     WREN = 1;           //使能擦除/编程功能
;  125:(    ASGN_0,          1 ,            ,      WREN)

; ITemplate_SET_0_TMP
	BSS            	(_WREN_0)/8,	(_WREN_0)%8
#line 126	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     StartIAP();         //开始IAP操作
;  126:(      CALL, (StartIAP.0) ,            ,          )

; ITemplate_CALL
	SEGMENTSEL     	_StartIAP
	CALL           	_StartIAP		; Bank 0		; ShBank 0
	SEGMENTSEL     	$
#line 127	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     CallFlashEn = 0;//清零软件锁变量
;  127:(    ASGN_1,          0 ,            ,CallFlashEn)

; ITemplate_CLR1_4_TMP
	SECTION        	0x1
	CLR            	(_CallFlashEn) & 0X7F		; Bank 1
#line 128	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     FlashEwEn = 0;
;  128:(    ASGN_1,          0 ,            , FlashEwEn)

; ITemplate_CLR1_4_TMP
	CLR            	(_FlashEwEn) & 0X7F		; Bank 1
#line 129	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     ROMCL = 0x00;       //退出IAP
;  129:(    ASGN_1,          0 ,            ,     ROMCL)

; ITemplate_CLR1_4_TMP
	CLR            	_ROMCL_0
#line 130	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     FRA = 0xFF12;//指到不用的地址空间
;  130:(    ASGN_2,      65298 ,            ,       FRA)

; ITemplate_ASGN1_4_R
	MOVI           	0xff
	MOVA           	_FRA_0+0x1
	MOVI           	0x12
	MOVA           	_FRA_0
#line 131	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     FRAN = 0x3456;//此处把地址反码赋成与0xFFFF和FRA无取反关系的值
;  131:(    ASGN_2,      13398 ,            ,      FRAN)

; ITemplate_ASGN1_4_R
	MOVI           	0x34
	MOVA           	_FRAN_0+0x1
	MOVI           	0x56
	MOVA           	_FRAN_0
#line 132	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     GIE = gie_bk;       //恢复全局中断
;  132:(    CVUC_B,     gie_bk ,            ,   #T20520)

; ITemplate_CVUC_B
	SECTION        	0x0
	BCC            	((_DataFlashErsPage_#T20520_9)/8) & 0X7F,	(_DataFlashErsPage_#T20520_9)%8		; Bank 0
	SECTION        	0x1
	JBS            	(_DataFlashErsPage_gie_bk_9) & 0X7F,	0x0		; Bank 1
	GOTO           	#L21166
	SECTION        	0x0
	BSS            	((_DataFlashErsPage_#T20520_9)/8) & 0X7F,	(_DataFlashErsPage_#T20520_9)%8		; Bank 0
#L21166
;  132:(    ASGN_0,    #T20520 ,            ,       GIE)

; ITemplate_ASGN_0_P
	SECTION        	0x0
	JBC            	((_DataFlashErsPage_#T20520_9)/8) & 0X7F,	(_DataFlashErsPage_#T20520_9)%8		; Bank 0
	GOTO           	#L21167
	BCC            	(_GIE_0)/8,	(_GIE_0)%8
	GOTO           	#L21168
#L21167
	BSS            	(_GIE_0)/8,	(_GIE_0)%8
#L21168
#line 133	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ; }
;  133:(       RET,            ,            ,          )

; ITemplate_RET
	RET            			; Bank 0		; ShBank 0
	_DESC          	DataFlashRdData,0X5,0X0

SECTION1DataFlashRdData	UNINTIAL       	0		; Bank 0
	ORG            	0X87		; Bank 0
_DataFlashRdDataDATA	RSEG           	0XD		; Bank 0
DataFlashRdData#	CSEG           
_DataFlashRdData
; /*******************************************************
; 函数名：unsigned long DataFlashRdData(unsigned int addr)
; 描  述：读Flash指定地址的数据
; 输入值：DataFlash地址addr，地址范围：0xC000~0xC1FF
; 输出值：无
; 返回值：DataFlash指定地址的数据
; *******************************************************/
; unsigned long DataFlashRdData(unsigned int addr)
; {
;     unsigned long data;
#line 145	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     unsigned char gie_bk = GIE;   //备份GIE
	CLR            	BKSR
;  145:(    CVB_UC,        GIE ,            ,   #T20524)

; ITemplate_CVB_UC
	MOVI           	0x0
	JBC            	(_GIE_0)/8,	(_GIE_0)%8
	MOVI           	0x1
	SECTION        	0x1
	MOVA           	(_DataFlashRdData_#T20524_12) & 0X7F		; Bank 1
;  145:(    ASGN_1,    #T20524 ,            ,    gie_bk)

; ITemplate_ASGN1_4_R
	MOV            	(_DataFlashRdData_#T20524_12) & 0X7F,	0x0		; Bank 1
	MOVA           	(_DataFlashRdData_gie_bk_12) & 0X7F		; Bank 1
#line 146	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     CLRWDT();
; ITemplate_LABEL
;-----------Embedded Asm--------------
	CWDT
;-------------------------------------
#line 148	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     while (GIE == 1)GIE = 0;
;  148:(     LABEL,    #L20525 ,            ,          )

; ITemplate_LABEL
#L20525
;  148:(    CVB_SC,        GIE ,            ,   #T20532)

; ITemplate_CVB_UC
	MOVI           	0x0
	JBC            	(_GIE_0)/8,	(_GIE_0)%8
	MOVI           	0x1
	MOVA           	(_DataFlashRdData_#T20532_12) & 0X7F		; Bank 1
;  148:(    JNEQ_1,          1 ,    #T20532 ,   #L20527)

; ITemplate_JNEQ1_4
	MOV            	(_DataFlashRdData_#T20532_12) & 0X7F,	0x0		; Bank 1
	XORI           	0x1
	JBS            	PSW,	0x2
	GOTO           	#L20527
;  148:(    ASGN_0,          0 ,            ,       GIE)

; ITemplate_CLR_0_TMP
	BCC            	(_GIE_0)/8,	(_GIE_0)%8
;  148:(       JMP,            ,            ,   #L20525)

; ITemplate_JMP
	GOTO           	#L20525
;  148:(     LABEL,    #L20527 ,            ,          )

; ITemplate_LABEL
#L20527
#line 150	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     FRAL = addr;
;  150:(   CVUI_UC,       addr ,            ,      FRAL)

; ITemplate_CVSMT
	MOV            	(_DataFlashRdDataDATA+0X0) & 0X7F,	0x0		; Bank 1
	MOVA           	_FRAL_0
#line 151	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     FRAH = addr >> 8;
;  151:(    RSH_2U,       addr ,          8 ,      FRAH)

; ITemplate_RSH1_4U
	MOVI           	0x8
	ADDI           	0x1
	MOVAR          	?_TMP		; Bank 0
	MOV            	(_DataFlashRdDataDATA+0X0) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x1		; Bank 0
	MOV            	(_DataFlashRdDataDATA+0X0+0x1) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x2		; Bank 0
	MOVRA          	?_TMP		; Bank 0
	GOTO           	#L21169
#L21170
	BCC            	PSW,	0x0
	SECTION        	0x0
	RR             	(?_TMP+0x2) & 0X7F,	0x1		; Bank 0
	RR             	(?_TMP+0x1) & 0X7F,	0x1		; Bank 0
#L21169
	ADDI           	0xff
	JBS            	PSW,	0x2
	GOTO           	#L21170
	SECTION        	0x0
	MOV            	(?_TMP+0x1) & 0X7F,	0x0		; Bank 0
	MOVA           	_FRAH_0
#line 152	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     DATARDTRG = 1;
;  152:(    ASGN_0,          1 ,            , DATARDTRG)

; ITemplate_SET_0_TMP
	BSS            	(_DATARDTRG_0)/8,	(_DATARDTRG_0)%8
#line 154	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     while (DATARDTRG);
;  154:(     LABEL,    #L20565 ,            ,          )

; ITemplate_LABEL
#L20565
;  154:(     JNZ_0,  DATARDTRG ,            ,   #L20565)

; ITemplate_JNZ_0
	JBC            	(_DATARDTRG_0)/8,	(_DATARDTRG_0)%8
	GOTO           	#L20565
#line 156	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     DATARDEN = 1;       //DATA区读出使能
;  156:(    ASGN_0,          1 ,            ,  DATARDEN)

; ITemplate_SET_0_TMP
	BSS            	(_DATARDEN_0)/8,	(_DATARDEN_0)%8
#line 157	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     __Asm TBR;          //查表读指令
; ITemplate_LABEL
;-----------Embedded Asm--------------
	TBR
;-------------------------------------
#line 158	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     data = ((unsigned long)ROMD1H << 24) | ((unsigned long)ROMD1L << 16) | ((unsigned long)ROMDH << 8) | ROMDL;
;  158:(   CVUC_UL,     ROMD1H ,            ,   #T20590)

; ITemplate_CVTMS_U
	SECTION        	0x1
	CLR            	(_DataFlashRdData_#T20590_12+0x1) & 0X7F		; Bank 1
	CLR            	(_DataFlashRdData_#T20590_12+0x2) & 0X7F		; Bank 1
	CLR            	(_DataFlashRdData_#T20590_12+0x3) & 0X7F		; Bank 1
	MOV            	_ROMD1H_0,	0x0
	MOVA           	(_DataFlashRdData_#T20590_12) & 0X7F		; Bank 1
;  158:(    LSH_4U,    #T20590 ,         24 ,   #T20593)

; ITemplate_LSH1_4
	MOVI           	0x18
	ADDI           	0x1
	MOVAR          	?_TMP		; Bank 0
	MOV            	(_DataFlashRdData_#T20590_12) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x1		; Bank 0
	MOV            	(_DataFlashRdData_#T20590_12+0x1) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x2		; Bank 0
	MOV            	(_DataFlashRdData_#T20590_12+0x2) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x3		; Bank 0
	MOV            	(_DataFlashRdData_#T20590_12+0x3) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x4		; Bank 0
	MOVRA          	?_TMP		; Bank 0
	GOTO           	#L21171
#L21172
	BCC            	PSW,	0x0
	SECTION        	0x0
	RL             	(?_TMP+0x1) & 0X7F,	0x1		; Bank 0
	RL             	(?_TMP+0x2) & 0X7F,	0x1		; Bank 0
	RL             	(?_TMP+0x3) & 0X7F,	0x1		; Bank 0
	RL             	(?_TMP+0x4) & 0X7F,	0x1		; Bank 0
#L21171
	ADDI           	0xff
	JBS            	PSW,	0x2
	GOTO           	#L21172
	SECTION        	0x0
	MOV            	(?_TMP+0x1) & 0X7F,	0x0		; Bank 0
	MOVAR          	_DataFlashRdData_#T20593_12		; Bank 1
	MOV            	(?_TMP+0x2) & 0X7F,	0x0		; Bank 0
	MOVAR          	_DataFlashRdData_#T20593_12+0x1		; Bank 1
	MOV            	(?_TMP+0x3) & 0X7F,	0x0		; Bank 0
	MOVAR          	_DataFlashRdData_#T20593_12+0x2		; Bank 1
	MOV            	(?_TMP+0x4) & 0X7F,	0x0		; Bank 0
	MOVAR          	_DataFlashRdData_#T20593_12+0x3		; Bank 1
;  158:(   CVUC_UL,     ROMD1L ,            ,   #T20600)

; ITemplate_CVTMS_U
	SECTION        	0x1
	CLR            	(_DataFlashRdData_#T20600_12+0x1) & 0X7F		; Bank 1
	CLR            	(_DataFlashRdData_#T20600_12+0x2) & 0X7F		; Bank 1
	CLR            	(_DataFlashRdData_#T20600_12+0x3) & 0X7F		; Bank 1
	MOV            	_ROMD1L_0,	0x0
	MOVA           	(_DataFlashRdData_#T20600_12) & 0X7F		; Bank 1
;  158:(    LSH_4U,    #T20600 ,         16 ,   #T20603)

; ITemplate_LSH1_4
	MOVI           	0x10
	ADDI           	0x1
	MOVAR          	?_TMP		; Bank 0
	MOV            	(_DataFlashRdData_#T20600_12) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x1		; Bank 0
	MOV            	(_DataFlashRdData_#T20600_12+0x1) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x2		; Bank 0
	MOV            	(_DataFlashRdData_#T20600_12+0x2) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x3		; Bank 0
	MOV            	(_DataFlashRdData_#T20600_12+0x3) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x4		; Bank 0
	MOVRA          	?_TMP		; Bank 0
	GOTO           	#L21173
#L21174
	BCC            	PSW,	0x0
	SECTION        	0x0
	RL             	(?_TMP+0x1) & 0X7F,	0x1		; Bank 0
	RL             	(?_TMP+0x2) & 0X7F,	0x1		; Bank 0
	RL             	(?_TMP+0x3) & 0X7F,	0x1		; Bank 0
	RL             	(?_TMP+0x4) & 0X7F,	0x1		; Bank 0
#L21173
	ADDI           	0xff
	JBS            	PSW,	0x2
	GOTO           	#L21174
	SECTION        	0x0
	MOV            	(?_TMP+0x1) & 0X7F,	0x0		; Bank 0
	MOVAR          	_DataFlashRdData_#T20603_12		; Bank 1
	MOV            	(?_TMP+0x2) & 0X7F,	0x0		; Bank 0
	MOVAR          	_DataFlashRdData_#T20603_12+0x1		; Bank 1
	MOV            	(?_TMP+0x3) & 0X7F,	0x0		; Bank 0
	MOVAR          	_DataFlashRdData_#T20603_12+0x2		; Bank 1
	MOV            	(?_TMP+0x4) & 0X7F,	0x0		; Bank 0
	MOVAR          	_DataFlashRdData_#T20603_12+0x3		; Bank 1
;  158:(     BOR_4,    #T20593 ,    #T20603 ,   #T20604)

; ITemplate_BOR1_4
	MOVRA          	_DataFlashRdData_#T20603_12		; Bank 1
	SECTION        	0x1
	IOR            	(_DataFlashRdData_#T20593_12) & 0X7F,	0x0		; Bank 1
	MOVA           	(_DataFlashRdData_#T20604_12) & 0X7F		; Bank 1
	MOV            	(_DataFlashRdData_#T20603_12+0x1) & 0X7F,	0x0		; Bank 1
	IOR            	(_DataFlashRdData_#T20593_12+0x1) & 0X7F,	0x0		; Bank 1
	MOVA           	(_DataFlashRdData_#T20604_12+0x1) & 0X7F		; Bank 1
	MOV            	(_DataFlashRdData_#T20603_12+0x2) & 0X7F,	0x0		; Bank 1
	IOR            	(_DataFlashRdData_#T20593_12+0x2) & 0X7F,	0x0		; Bank 1
	MOVA           	(_DataFlashRdData_#T20604_12+0x2) & 0X7F		; Bank 1
	MOV            	(_DataFlashRdData_#T20603_12+0x3) & 0X7F,	0x0		; Bank 1
	IOR            	(_DataFlashRdData_#T20593_12+0x3) & 0X7F,	0x0		; Bank 1
	MOVA           	(_DataFlashRdData_#T20604_12+0x3) & 0X7F		; Bank 1
;  158:(   CVUC_UL,      ROMDH ,            ,   #T20611)

; ITemplate_CVTMS_U
	CLR            	(_DataFlashRdData_#T20611_12+0x1) & 0X7F		; Bank 1
	CLR            	(_DataFlashRdData_#T20611_12+0x2) & 0X7F		; Bank 1
	CLR            	(_DataFlashRdData_#T20611_12+0x3) & 0X7F		; Bank 1
	MOV            	_ROMDH_0,	0x0
	MOVA           	(_DataFlashRdData_#T20611_12) & 0X7F		; Bank 1
;  158:(    LSH_4U,    #T20611 ,          8 ,   #T20614)

; ITemplate_LSH1_4_8
	MOV            	(_DataFlashRdData_#T20611_12) & 0X7F,	0x0		; Bank 1
	MOVA           	(_DataFlashRdData_#T20614_12+0x1) & 0X7F		; Bank 1
	MOV            	(_DataFlashRdData_#T20611_12+0x1) & 0X7F,	0x0		; Bank 1
	MOVA           	(_DataFlashRdData_#T20614_12+0x2) & 0X7F		; Bank 1
	MOV            	(_DataFlashRdData_#T20611_12+0x2) & 0X7F,	0x0		; Bank 1
	MOVA           	(_DataFlashRdData_#T20614_12+0x3) & 0X7F		; Bank 1
	CLR            	(_DataFlashRdData_#T20614_12) & 0X7F		; Bank 1
;  158:(     BOR_4,    #T20604 ,    #T20614 ,   #T20615)

; ITemplate_BOR1_4
	MOV            	(_DataFlashRdData_#T20614_12) & 0X7F,	0x0		; Bank 1
	IOR            	(_DataFlashRdData_#T20604_12) & 0X7F,	0x0		; Bank 1
	MOVA           	(_DataFlashRdData_#T20615_12) & 0X7F		; Bank 1
	MOV            	(_DataFlashRdData_#T20614_12+0x1) & 0X7F,	0x0		; Bank 1
	IOR            	(_DataFlashRdData_#T20604_12+0x1) & 0X7F,	0x0		; Bank 1
	MOVA           	(_DataFlashRdData_#T20615_12+0x1) & 0X7F		; Bank 1
	MOV            	(_DataFlashRdData_#T20614_12+0x2) & 0X7F,	0x0		; Bank 1
	IOR            	(_DataFlashRdData_#T20604_12+0x2) & 0X7F,	0x0		; Bank 1
	MOVA           	(_DataFlashRdData_#T20615_12+0x2) & 0X7F		; Bank 1
	MOV            	(_DataFlashRdData_#T20614_12+0x3) & 0X7F,	0x0		; Bank 1
	IOR            	(_DataFlashRdData_#T20604_12+0x3) & 0X7F,	0x0		; Bank 1
	MOVA           	(_DataFlashRdData_#T20615_12+0x3) & 0X7F		; Bank 1
;  158:(   CVUC_UL,      ROMDL ,            ,   #T20618)

; ITemplate_CVTMS_U
	CLR            	(_DataFlashRdData_#T20618_12+0x1) & 0X7F		; Bank 1
	CLR            	(_DataFlashRdData_#T20618_12+0x2) & 0X7F		; Bank 1
	CLR            	(_DataFlashRdData_#T20618_12+0x3) & 0X7F		; Bank 1
	MOV            	_ROMDL_0,	0x0
	MOVA           	(_DataFlashRdData_#T20618_12) & 0X7F		; Bank 1
;  158:(     BOR_4,    #T20615 ,    #T20618 ,      data)

; ITemplate_BOR1_4
	MOV            	(_DataFlashRdData_#T20618_12) & 0X7F,	0x0		; Bank 1
	IOR            	(_DataFlashRdData_#T20615_12) & 0X7F,	0x0		; Bank 1
	MOVA           	(_DataFlashRdData_data_12) & 0X7F		; Bank 1
	MOV            	(_DataFlashRdData_#T20618_12+0x1) & 0X7F,	0x0		; Bank 1
	IOR            	(_DataFlashRdData_#T20615_12+0x1) & 0X7F,	0x0		; Bank 1
	MOVA           	(_DataFlashRdData_data_12+0x1) & 0X7F		; Bank 1
	MOV            	(_DataFlashRdData_#T20618_12+0x2) & 0X7F,	0x0		; Bank 1
	IOR            	(_DataFlashRdData_#T20615_12+0x2) & 0X7F,	0x0		; Bank 1
	MOVA           	(_DataFlashRdData_data_12+0x2) & 0X7F		; Bank 1
	MOV            	(_DataFlashRdData_#T20618_12+0x3) & 0X7F,	0x0		; Bank 1
	IOR            	(_DataFlashRdData_#T20615_12+0x3) & 0X7F,	0x0		; Bank 1
	MOVA           	(_DataFlashRdData_data_12+0x3) & 0X7F		; Bank 1
#line 159	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     DATARDEN = 0;       //DATA区读出禁止
;  159:(    ASGN_0,          0 ,            ,  DATARDEN)

; ITemplate_CLR_0_TMP
	BCC            	(_DATARDEN_0)/8,	(_DATARDEN_0)%8
#line 160	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     GIE = gie_bk;       //恢复全局中断
;  160:(    CVUC_B,     gie_bk ,            ,   #T20632)

; ITemplate_CVUC_B
	SECTION        	0x0
	BCC            	((_DataFlashRdData_#T20632_12)/8) & 0X7F,	(_DataFlashRdData_#T20632_12)%8		; Bank 0
	SECTION        	0x1
	JBS            	(_DataFlashRdData_gie_bk_12) & 0X7F,	0x0		; Bank 1
	GOTO           	#L21175
	SECTION        	0x0
	BSS            	((_DataFlashRdData_#T20632_12)/8) & 0X7F,	(_DataFlashRdData_#T20632_12)%8		; Bank 0
#L21175
;  160:(    ASGN_0,    #T20632 ,            ,       GIE)

; ITemplate_ASGN_0_P
	SECTION        	0x0
	JBC            	((_DataFlashRdData_#T20632_12)/8) & 0X7F,	(_DataFlashRdData_#T20632_12)%8		; Bank 0
	GOTO           	#L21176
	BCC            	(_GIE_0)/8,	(_GIE_0)%8
	GOTO           	#L21177
#L21176
	BSS            	(_GIE_0)/8,	(_GIE_0)%8
#L21177
#line 161	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     return data;
;  161:(     RET_4,       data ,            ,      #RET)

; ITemplate_RET2_N
	SECTION        	0x1
	MOV            	(_DataFlashRdData_data_12) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP_RET		; Bank 0
	MOV            	(_DataFlashRdData_data_12+0x1) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP_RET+0x1		; Bank 0
	MOV            	(_DataFlashRdData_data_12+0x2) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP_RET+0x2		; Bank 0
	MOV            	(_DataFlashRdData_data_12+0x3) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP_RET+0x3		; Bank 0
	MOVRA          	?_TMP_RET		; Bank 0
	SECTION        	0x0
	RET            			; Bank 0		; ShBank 0
	_DESC          	DataFlashWrData,0X5,0X0,StartIAP

SECTION1DataFlashWrData	UNINTIAL       	0		; Bank 0
	ORG            	0X87		; Bank 0
_DataFlashWrDataDATA	RSEG           	0XA		; Bank 0
DataFlashWrData#	CSEG           
_DataFlashWrData
; }
; /*******************************************************
; 函数名：void DataFlashWrData(unsigned int addr, unsigned long word)
; 描  述：写DataFlash指定地址的数据，地址范围：0xC000~0xC1FF
; 输入值：DataFlash地址addr，DataFlash取反地址addri，待写的数据word
; 输出值：无
; 返回值：0:写入失败，1:写入成功
; *******************************************************/
; unsigned char DataFlashWrData(unsigned int addr, unsigned int addri, unsigned long word)
; {
;     unsigned char rmdh, rmdl, rmd1h, rmd1l;   //临时存放ROMDH、ROMDL值
#line 174	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     unsigned char gie_bk = GIE;   //备份GIE
	CLR            	BKSR
;  174:(    CVB_UC,        GIE ,            ,   #T20642)

; ITemplate_CVB_UC
	MOVI           	0x0
	JBC            	(_GIE_0)/8,	(_GIE_0)%8
	MOVI           	0x1
	SECTION        	0x1
	MOVA           	(_DataFlashWrData_#T20642_15) & 0X7F		; Bank 1
;  174:(    ASGN_1,    #T20642 ,            ,    gie_bk)

; ITemplate_ASGN1_4_R
	MOV            	(_DataFlashWrData_#T20642_15) & 0X7F,	0x0		; Bank 1
	MOVA           	(_DataFlashWrData_gie_bk_15) & 0X7F		; Bank 1
;     unsigned int reault; 
; 	
#line 177	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     CLRWDT();
; ITemplate_LABEL
;-----------Embedded Asm--------------
	CWDT
;-------------------------------------
#line 179	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     while (GIE == 1)GIE = 0;           //启动IAP前关闭全局中断
;  179:(     LABEL,    #L20643 ,            ,          )

; ITemplate_LABEL
#L20643
;  179:(    CVB_SC,        GIE ,            ,   #T20650)

; ITemplate_CVB_UC
	MOVI           	0x0
	JBC            	(_GIE_0)/8,	(_GIE_0)%8
	MOVI           	0x1
	MOVA           	(_DataFlashWrData_#T20650_15) & 0X7F		; Bank 1
;  179:(    JNEQ_1,          1 ,    #T20650 ,   #L20645)

; ITemplate_JNEQ1_4
	MOV            	(_DataFlashWrData_#T20650_15) & 0X7F,	0x0		; Bank 1
	XORI           	0x1
	JBS            	PSW,	0x2
	GOTO           	#L20645
;  179:(    ASGN_0,          0 ,            ,       GIE)

; ITemplate_CLR_0_TMP
	BCC            	(_GIE_0)/8,	(_GIE_0)%8
;  179:(       JMP,            ,            ,   #L20643)

; ITemplate_JMP
	GOTO           	#L20643
;  179:(     LABEL,    #L20645 ,            ,          )

; ITemplate_LABEL
#L20645
#line 181	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     FlashEwEn = 0xAA;//设置软件锁变量
;  181:(    ASGN_1,        170 ,            , FlashEwEn)

; ITemplate_ASGN1_4_R
	MOVI           	0xaa
	MOVA           	(_FlashEwEn) & 0X7F		; Bank 1
#line 183	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     FPEE = 0;           //存储器编程模式
;  183:(    ASGN_0,          0 ,            ,      FPEE)

; ITemplate_CLR_0_TMP
	BCC            	(_FPEE_0)/8,	(_FPEE_0)%8
#line 184	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     ROMD1H = word >> 24;  //写Word
;  184:(    RSH_4U,       word ,         24 ,    ROMD1H)

; ITemplate_RSH1_4U
	MOVI           	0x18
	ADDI           	0x1
	MOVAR          	?_TMP		; Bank 0
	MOV            	(_DataFlashWrDataDATA+0X4) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x1		; Bank 0
	MOV            	(_DataFlashWrDataDATA+0X4+0x1) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x2		; Bank 0
	MOV            	(_DataFlashWrDataDATA+0X4+0x2) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x3		; Bank 0
	MOV            	(_DataFlashWrDataDATA+0X4+0x3) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x4		; Bank 0
	MOVRA          	?_TMP		; Bank 0
	GOTO           	#L21178
#L21179
	BCC            	PSW,	0x0
	SECTION        	0x0
	RR             	(?_TMP+0x4) & 0X7F,	0x1		; Bank 0
	RR             	(?_TMP+0x3) & 0X7F,	0x1		; Bank 0
	RR             	(?_TMP+0x2) & 0X7F,	0x1		; Bank 0
	RR             	(?_TMP+0x1) & 0X7F,	0x1		; Bank 0
#L21178
	ADDI           	0xff
	JBS            	PSW,	0x2
	GOTO           	#L21179
	SECTION        	0x0
	MOV            	(?_TMP+0x1) & 0X7F,	0x0		; Bank 0
	MOVA           	_ROMD1H_0
#line 185	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     ROMD1L = word >> 16;
;  185:(    RSH_4U,       word ,         16 ,    ROMD1L)

; ITemplate_RSH1_4U
	MOVI           	0x10
	ADDI           	0x1
	MOVA           	(?_TMP) & 0X7F		; Bank 0
	MOVRA          	_DataFlashWrDataDATA+0X4		; Bank 1
	MOVA           	(?_TMP+0x1) & 0X7F		; Bank 0
	MOVRA          	_DataFlashWrDataDATA+0X4+0x1		; Bank 1
	MOVA           	(?_TMP+0x2) & 0X7F		; Bank 0
	MOVRA          	_DataFlashWrDataDATA+0X4+0x2		; Bank 1
	MOVA           	(?_TMP+0x3) & 0X7F		; Bank 0
	MOVRA          	_DataFlashWrDataDATA+0X4+0x3		; Bank 1
	MOVA           	(?_TMP+0x4) & 0X7F		; Bank 0
	MOV            	(?_TMP) & 0X7F,	0x0		; Bank 0
	GOTO           	#L21180
#L21181
	BCC            	PSW,	0x0
	RR             	(?_TMP+0x4) & 0X7F,	0x1		; Bank 0
	RR             	(?_TMP+0x3) & 0X7F,	0x1		; Bank 0
	RR             	(?_TMP+0x2) & 0X7F,	0x1		; Bank 0
	RR             	(?_TMP+0x1) & 0X7F,	0x1		; Bank 0
#L21180
	ADDI           	0xff
	JBS            	PSW,	0x2
	GOTO           	#L21181
	MOV            	(?_TMP+0x1) & 0X7F,	0x0		; Bank 0
	MOVA           	_ROMD1L_0
#line 186	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     ROMDH = word >> 8;
;  186:(    RSH_4U,       word ,          8 ,     ROMDH)

; ITemplate_RSH1_4U
	MOVI           	0x8
	ADDI           	0x1
	MOVA           	(?_TMP) & 0X7F		; Bank 0
	MOVRA          	_DataFlashWrDataDATA+0X4		; Bank 1
	MOVA           	(?_TMP+0x1) & 0X7F		; Bank 0
	MOVRA          	_DataFlashWrDataDATA+0X4+0x1		; Bank 1
	MOVA           	(?_TMP+0x2) & 0X7F		; Bank 0
	MOVRA          	_DataFlashWrDataDATA+0X4+0x2		; Bank 1
	MOVA           	(?_TMP+0x3) & 0X7F		; Bank 0
	MOVRA          	_DataFlashWrDataDATA+0X4+0x3		; Bank 1
	MOVA           	(?_TMP+0x4) & 0X7F		; Bank 0
	MOV            	(?_TMP) & 0X7F,	0x0		; Bank 0
	GOTO           	#L21182
#L21183
	BCC            	PSW,	0x0
	RR             	(?_TMP+0x4) & 0X7F,	0x1		; Bank 0
	RR             	(?_TMP+0x3) & 0X7F,	0x1		; Bank 0
	RR             	(?_TMP+0x2) & 0X7F,	0x1		; Bank 0
	RR             	(?_TMP+0x1) & 0X7F,	0x1		; Bank 0
#L21182
	ADDI           	0xff
	JBS            	PSW,	0x2
	GOTO           	#L21183
	MOV            	(?_TMP+0x1) & 0X7F,	0x0		; Bank 0
	MOVA           	_ROMDH_0
#line 187	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     ROMDL = word;
;  187:(   CVUL_UC,       word ,            ,     ROMDL)

; ITemplate_CVSMT
	MOVRA          	_DataFlashWrDataDATA+0X4		; Bank 1
	MOVA           	_ROMDL_0
#line 188	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     FRAH = addr >> 8;   //IAP编程地址
;  188:(    RSH_2U,       addr ,          8 ,      FRAH)

; ITemplate_RSH1_4U
	MOVI           	0x8
	ADDI           	0x1
	MOVA           	(?_TMP) & 0X7F		; Bank 0
	MOVRA          	_DataFlashWrDataDATA+0X0		; Bank 1
	MOVA           	(?_TMP+0x1) & 0X7F		; Bank 0
	MOVRA          	_DataFlashWrDataDATA+0X0+0x1		; Bank 1
	MOVA           	(?_TMP+0x2) & 0X7F		; Bank 0
	MOV            	(?_TMP) & 0X7F,	0x0		; Bank 0
	GOTO           	#L21184
#L21185
	BCC            	PSW,	0x0
	RR             	(?_TMP+0x2) & 0X7F,	0x1		; Bank 0
	RR             	(?_TMP+0x1) & 0X7F,	0x1		; Bank 0
#L21184
	ADDI           	0xff
	JBS            	PSW,	0x2
	GOTO           	#L21185
	MOV            	(?_TMP+0x1) & 0X7F,	0x0		; Bank 0
	MOVA           	_FRAH_0
#line 189	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     FRAL = addr;
;  189:(   CVUI_UC,       addr ,            ,      FRAL)

; ITemplate_CVSMT
	MOVRA          	_DataFlashWrDataDATA+0X0		; Bank 1
	MOVA           	_FRAL_0
#line 190	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     FRAHN = addri >> 8;    //IAP擦除/编程必须满足地址取反逻辑
;  190:(    RSH_2U,      addri ,          8 ,     FRAHN)

; ITemplate_RSH1_4U
	MOVI           	0x8
	ADDI           	0x1
	MOVA           	(?_TMP) & 0X7F		; Bank 0
	MOVRA          	_DataFlashWrDataDATA+0X2		; Bank 1
	MOVA           	(?_TMP+0x1) & 0X7F		; Bank 0
	MOVRA          	_DataFlashWrDataDATA+0X2+0x1		; Bank 1
	MOVA           	(?_TMP+0x2) & 0X7F		; Bank 0
	MOV            	(?_TMP) & 0X7F,	0x0		; Bank 0
	GOTO           	#L21186
#L21187
	BCC            	PSW,	0x0
	RR             	(?_TMP+0x2) & 0X7F,	0x1		; Bank 0
	RR             	(?_TMP+0x1) & 0X7F,	0x1		; Bank 0
#L21186
	ADDI           	0xff
	JBS            	PSW,	0x2
	GOTO           	#L21187
	MOV            	(?_TMP+0x1) & 0X7F,	0x0		; Bank 0
	MOVA           	_FRAHN_0
#line 191	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     FRALN = addri;
;  191:(   CVUI_UC,      addri ,            ,     FRALN)

; ITemplate_CVSMT
	MOVRA          	_DataFlashWrDataDATA+0X2		; Bank 1
	MOVA           	_FRALN_0
#line 193	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     WREN = 1;           //使能编程
;  193:(    ASGN_0,          1 ,            ,      WREN)

; ITemplate_SET_0_TMP
	BSS            	(_WREN_0)/8,	(_WREN_0)%8
#line 194	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     StartIAP();         //开始IAP操作
;  194:(      CALL, (StartIAP.0) ,            ,          )

; ITemplate_CALL
	SEGMENTSEL     	_StartIAP
	CALL           	_StartIAP		; Bank 0		; ShBank 0
	SEGMENTSEL     	$
#line 195	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     CallFlashEn = 0;//清零软件锁变量
;  195:(    ASGN_1,          0 ,            ,CallFlashEn)

; ITemplate_CLR1_4_TMP
	SECTION        	0x1
	CLR            	(_CallFlashEn) & 0X7F		; Bank 1
#line 196	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     FlashEwEn = 0;
;  196:(    ASGN_1,          0 ,            , FlashEwEn)

; ITemplate_CLR1_4_TMP
	CLR            	(_FlashEwEn) & 0X7F		; Bank 1
#line 197	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     rmdh = ROMDH++;
;  197:(    ASGN_1,      ROMDH ,            ,      rmdh)

; ITemplate_ASGN1_4_R
	MOV            	_ROMDH_0,	0x0
	MOVA           	(_DataFlashWrData_rmdh_15) & 0X7F		; Bank 1
;  197:(     ADD_1,      ROMDH ,          1 ,     ROMDH)

; ITemplate_INC_1_TMP
	INC            	_ROMDH_0
#line 198	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     rmdl = ROMDL++;
;  198:(    ASGN_1,      ROMDL ,            ,      rmdl)

; ITemplate_ASGN1_4_R
	MOV            	_ROMDL_0,	0x0
	MOVA           	(_DataFlashWrData_rmdl_15) & 0X7F		; Bank 1
;  198:(     ADD_1,      ROMDL ,          1 ,     ROMDL)

; ITemplate_INC_1_TMP
	INC            	_ROMDL_0
#line 199	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     rmd1h = ROMD1H++;
;  199:(    ASGN_1,     ROMD1H ,            ,     rmd1h)

; ITemplate_ASGN1_4_R
	MOV            	_ROMD1H_0,	0x0
	MOVA           	(_DataFlashWrData_rmd1h_15) & 0X7F		; Bank 1
;  199:(     ADD_1,     ROMD1H ,          1 ,    ROMD1H)

; ITemplate_INC_1_TMP
	INC            	_ROMD1H_0
#line 200	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     rmd1l = ROMD1L++;
;  200:(    ASGN_1,     ROMD1L ,            ,     rmd1l)

; ITemplate_ASGN1_4_R
	MOV            	_ROMD1L_0,	0x0
	MOVA           	(_DataFlashWrData_rmd1l_15) & 0X7F		; Bank 1
;  200:(     ADD_1,     ROMD1L ,          1 ,    ROMD1L)

; ITemplate_INC_1_TMP
	INC            	_ROMD1L_0
#line 201	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     DATARDEN = 1;    //DATA区读出使能
;  201:(    ASGN_0,          1 ,            ,  DATARDEN)

; ITemplate_SET_0_TMP
	BSS            	(_DATARDEN_0)/8,	(_DATARDEN_0)%8
#line 202	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     FRAH = addr >> 8;
;  202:(    RSH_2U,       addr ,          8 ,      FRAH)

; ITemplate_RSH1_4U
	MOVI           	0x8
	ADDI           	0x1
	MOVAR          	?_TMP		; Bank 0
	MOV            	(_DataFlashWrDataDATA+0X0) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x1		; Bank 0
	MOV            	(_DataFlashWrDataDATA+0X0+0x1) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x2		; Bank 0
	MOVRA          	?_TMP		; Bank 0
	GOTO           	#L21188
#L21189
	BCC            	PSW,	0x0
	SECTION        	0x0
	RR             	(?_TMP+0x2) & 0X7F,	0x1		; Bank 0
	RR             	(?_TMP+0x1) & 0X7F,	0x1		; Bank 0
#L21188
	ADDI           	0xff
	JBS            	PSW,	0x2
	GOTO           	#L21189
	SECTION        	0x0
	MOV            	(?_TMP+0x1) & 0X7F,	0x0		; Bank 0
	MOVA           	_FRAH_0
#line 203	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     FRAL = addr;
;  203:(   CVUI_UC,       addr ,            ,      FRAL)

; ITemplate_CVSMT
	MOVRA          	_DataFlashWrDataDATA+0X0		; Bank 1
	MOVA           	_FRAL_0
#line 204	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     DATARDTRG = 1;   //DATA区读出触发
;  204:(    ASGN_0,          1 ,            , DATARDTRG)

; ITemplate_SET_0_TMP
	BSS            	(_DATARDTRG_0)/8,	(_DATARDTRG_0)%8
#line 206	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     while (DATARDTRG);
;  206:(     LABEL,    #L20879 ,            ,          )

; ITemplate_LABEL
#L20879
;  206:(     JNZ_0,  DATARDTRG ,            ,   #L20879)

; ITemplate_JNZ_0
	JBC            	(_DATARDTRG_0)/8,	(_DATARDTRG_0)%8
	GOTO           	#L20879
#line 208	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     __Asm TBR;          //查表读指令
; ITemplate_LABEL
;-----------Embedded Asm--------------
	TBR
;-------------------------------------
#line 210	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     if (ROMDH == rmdh && ROMDL == rmdl && ROMD1H == rmd1h && ROMD1L == rmd1l)
;  210:(    JNEQ_1,      ROMDH ,       rmdh ,   #L20884)

; ITemplate_JNEQ1_4
	SECTION        	0x1
	MOV            	(_DataFlashWrData_rmdh_15) & 0X7F,	0x0		; Bank 1
	XOR            	_ROMDH_0,	0x0
	JBS            	PSW,	0x2
	GOTO           	#L20884
;  210:(    JNEQ_1,      ROMDL ,       rmdl ,   #L20884)

; ITemplate_JNEQ1_4
	MOV            	(_DataFlashWrData_rmdl_15) & 0X7F,	0x0		; Bank 1
	XOR            	_ROMDL_0,	0x0
	JBS            	PSW,	0x2
	GOTO           	#L20884
;  210:(    JNEQ_1,     ROMD1H ,      rmd1h ,   #L20884)

; ITemplate_JNEQ1_4
	MOV            	(_DataFlashWrData_rmd1h_15) & 0X7F,	0x0		; Bank 1
	XOR            	_ROMD1H_0,	0x0
	JBS            	PSW,	0x2
	GOTO           	#L20884
;  210:(    JNEQ_1,     ROMD1L ,      rmd1l ,   #L20884)

; ITemplate_JNEQ1_4
	MOV            	(_DataFlashWrData_rmd1l_15) & 0X7F,	0x0		; Bank 1
	XOR            	_ROMD1L_0,	0x0
	JBS            	PSW,	0x2
	GOTO           	#L20884
;     {
#line 212	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ; 		reault = 1;
;  212:(    ASGN_2,          1 ,            ,    reault)

; ITemplate_ASGN1_4_R
	MOVI           	0x0
	MOVA           	(_DataFlashWrData_reault_15+0x1) & 0X7F		; Bank 1
	MOVI           	0x1
	MOVA           	(_DataFlashWrData_reault_15) & 0X7F		; Bank 1
#line 213	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     }
;  213:(       JMP,            ,            ,   #L20882)

; ITemplate_JMP
	GOTO           	#L20882
#line 214	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ; 	else
;  214:(     LABEL,    #L20884 ,            ,          )

; ITemplate_LABEL
#L20884
; 	{
#line 216	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ; 		reault = 0;
;  216:(    ASGN_2,          0 ,            ,    reault)

; ITemplate_CLR1_4_TMP
	CLR            	(_DataFlashWrData_reault_15) & 0X7F		; Bank 1
	CLR            	(_DataFlashWrData_reault_15+0x1) & 0X7F		; Bank 1
#line 217	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ; 	}
;  217:(     LABEL,    #L20882 ,            ,          )

; ITemplate_LABEL
#L20882
#line 218	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     ROMCL = 0x00;       //退出IAP
;  218:(    ASGN_1,          0 ,            ,     ROMCL)

; ITemplate_CLR1_4_TMP
	CLR            	_ROMCL_0
#line 219	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ; 	FRA = 0xFF12;//指到不用的地址空间
;  219:(    ASGN_2,      65298 ,            ,       FRA)

; ITemplate_ASGN1_4_R
	MOVI           	0xff
	MOVA           	_FRA_0+0x1
	MOVI           	0x12
	MOVA           	_FRA_0
#line 220	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ; 	FRAN = 0x3456;//此处把地址反码赋成与0xFFFF和FRA无取反关系的值
;  220:(    ASGN_2,      13398 ,            ,      FRAN)

; ITemplate_ASGN1_4_R
	MOVI           	0x34
	MOVA           	_FRAN_0+0x1
	MOVI           	0x56
	MOVA           	_FRAN_0
#line 221	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ; 	ROMDH = 0xFF;//数据初始化为0xFF
;  221:(    ASGN_1,        255 ,            ,     ROMDH)

; ITemplate_ASGN1_4_R
	MOVI           	0xff
	MOVA           	_ROMDH_0
#line 222	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ; 	ROMDL = 0xFF;//数据初始化为0xFF
;  222:(    ASGN_1,        255 ,            ,     ROMDL)

; ITemplate_ASGN1_4_R
	MOVI           	0xff
	MOVA           	_ROMDL_0
#line 223	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ; 	ROMD1H = 0xFF;//数据初始化为0xFF
;  223:(    ASGN_1,        255 ,            ,    ROMD1H)

; ITemplate_ASGN1_4_R
	MOVI           	0xff
	MOVA           	_ROMD1H_0
#line 224	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ; 	ROMD1L = 0xFF;//数据初始化为0xFF
;  224:(    ASGN_1,        255 ,            ,    ROMD1L)

; ITemplate_ASGN1_4_R
	MOVI           	0xff
	MOVA           	_ROMD1L_0
#line 225	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ; 	CallFlashEn = 0;//清零软件锁变量
;  225:(    ASGN_1,          0 ,            ,CallFlashEn)

; ITemplate_CLR1_4_TMP
	CLR            	(_CallFlashEn) & 0X7F		; Bank 1
#line 226	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ; 	FlashEwEn = 0; 
;  226:(    ASGN_1,          0 ,            , FlashEwEn)

; ITemplate_CLR1_4_TMP
	CLR            	(_FlashEwEn) & 0X7F		; Bank 1
#line 227	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ; 	GIE = gie_bk;            //恢复全局中断
;  227:(    CVUC_B,     gie_bk ,            ,   #T20984)

; ITemplate_CVUC_B
	SECTION        	0x0
	BCC            	((_DataFlashWrData_#T20984_15)/8) & 0X7F,	(_DataFlashWrData_#T20984_15)%8		; Bank 0
	SECTION        	0x1
	JBS            	(_DataFlashWrData_gie_bk_15) & 0X7F,	0x0		; Bank 1
	GOTO           	#L21190
	SECTION        	0x0
	BSS            	((_DataFlashWrData_#T20984_15)/8) & 0X7F,	(_DataFlashWrData_#T20984_15)%8		; Bank 0
#L21190
;  227:(    ASGN_0,    #T20984 ,            ,       GIE)

; ITemplate_ASGN_0_P
	SECTION        	0x0
	JBC            	((_DataFlashWrData_#T20984_15)/8) & 0X7F,	(_DataFlashWrData_#T20984_15)%8		; Bank 0
	GOTO           	#L21191
	BCC            	(_GIE_0)/8,	(_GIE_0)%8
	GOTO           	#L21192
#L21191
	BSS            	(_GIE_0)/8,	(_GIE_0)%8
#L21192
#line 229	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ; 	return reault;
;  229:(   CVUI_UC,     reault ,            ,   #T20991)

; ITemplate_CVSMT
	SECTION        	0x1
	MOV            	(_DataFlashWrData_reault_15) & 0X7F,	0x0		; Bank 1
	MOVA           	(_DataFlashWrData_#T20991_15) & 0X7F		; Bank 1
;  229:(     RET_1,    #T20991 ,            ,      #RET)

; ITemplate_RET2_N
	MOV            	(_DataFlashWrData_#T20991_15) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP_RET		; Bank 0
	SECTION        	0x0
	RET            			; Bank 0		; ShBank 0
	_DESC          	main,0X4,0X0,RAMclear,GPIOInit,DataFlashErsPage,DataFlashWrData,DataFlashRdData

SECTION1main	UNINTIAL       	0		; Bank 0
	ORG            	0X81		; Bank 0
_mainDATA	RSEG           	0X6		; Bank 0
main#	CSEG           
_main
; }
; /*******************************************************
; 函数名：void main(void)
; 描  述：主函数，数据区IAP操作，数据区地址：0xC000~0xC1FF
; 输入值：无
; 输出值：无
; 返回值：无
; *******************************************************/
; void main(void)
; {
;     unsigned char i;
;     unsigned long j;
;     unsigned int dtflashaddr;       //地址变量，用于DataFlash擦除、读写操作
#line 245	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     RAMclear();
	CLR            	BKSR
;  245:(      CALL, (RAMclear.0) ,            ,          )

; ITemplate_CALL
	SEGMENTSEL     	_RAMclear
	CALL           	_RAMclear		; Bank 0		; ShBank 0
	SEGMENTSEL     	$
#line 246	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     GPIOInit();
;  246:(      CALL, (GPIOInit.0) ,            ,          )

; ITemplate_CALL
	SEGMENTSEL     	_GPIOInit
	CALL           	_GPIOInit		; Bank 0		; ShBank 0
	SEGMENTSEL     	$
;     /************IAP擦除操作，擦除Flash数据区(256Word)****/
#line 249	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     CallFlashEn = 0x55;         //CallFlashEn赋值0x55才能正常执行擦除编程操作
;  249:(    ASGN_1,         85 ,            ,CallFlashEn)

; ITemplate_ASGN1_4_R
	MOVI           	0x55
	MOVAR          	_CallFlashEn		; Bank 1
#line 250	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     DataFlashErsPage(STARTADDR, ~STARTADDR);
;  250:(    PARA_2,      49152 ,            ,      addr)

; ITemplate_ASGN1_4
	MOVI           	0x0
	MOVAR          	_DataFlashErsPageDATA+0X0		; Bank 1
	MOVI           	0xc0
	MOVAR          	_DataFlashErsPageDATA+0X0+0x1		; Bank 1
;  250:(    PARA_2,      16383 ,            ,     addri)

; ITemplate_ASGN1_4
	MOVI           	0xff
	MOVAR          	_DataFlashErsPageDATA+0X2		; Bank 1
	MOVI           	0x3f
	MOVAR          	_DataFlashErsPageDATA+0X2+0x1		; Bank 1
;  250:(      CALL, (DataFlashErsPage.0) ,            ,          )

; ITemplate_CALL
	SEGMENTSEL     	_DataFlashErsPage
	CALL           	_DataFlashErsPage		; Bank 0		; ShBank 0
	SEGMENTSEL     	$
#line 251	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     CLRWDT();
; ITemplate_LABEL
;-----------Embedded Asm--------------
	CWDT
;-------------------------------------
;     /******************IAP写入并读出校验******************/
#line 254	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     for (dtflashaddr = STARTADDR; dtflashaddr <= ENDADDR; dtflashaddr++)
;  254:(    ASGN_2,      49152 ,            ,dtflashaddr)

; ITemplate_ASGN1_4_R
	MOVI           	0xc0
	MOVAR          	_main_dtflashaddr_20+0x1		; Bank 1
	MOVI           	0x0
	MOVAR          	_main_dtflashaddr_20		; Bank 1
;  254:(     LABEL,    #L21017 ,            ,          )

; ITemplate_LABEL
#L21017
;  254:(    JGT_2U, dtflashaddr ,      49279 ,   #L21018)

; ITemplate_JGT1_4U
	SECTION        	0x1
	MOV            	(_main_dtflashaddr_20+0x1) & 0X7F,	0x0		; Bank 1
	SUBI           	0xc0
	JBS            	PSW,	0x2
	GOTO           	#L21193
	MOV            	(_main_dtflashaddr_20) & 0X7F,	0x0		; Bank 1
	SUBI           	0x7f
#L21193
	JBS            	PSW,	0x0
	GOTO           	#L21018
;     {
#line 256	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;         CallFlashEn = 0x55;     //CallFlashEn赋值0x55才能正常执行擦除编程操作
;  256:(    ASGN_1,         85 ,            ,CallFlashEn)

; ITemplate_ASGN1_4_R
	MOVI           	0x55
	MOVA           	(_CallFlashEn) & 0X7F		; Bank 1
#line 257	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;         i = DataFlashWrData(dtflashaddr, ~dtflashaddr, WRDATA);
;  257:(    PARA_2, dtflashaddr ,            ,      addr)

; ITemplate_ASGN1_4
	MOV            	(_main_dtflashaddr_20) & 0X7F,	0x0		; Bank 1
	MOVA           	(_DataFlashWrDataDATA+0X0) & 0X7F		; Bank 1
	MOV            	(_main_dtflashaddr_20+0x1) & 0X7F,	0x0		; Bank 1
	MOVA           	(_DataFlashWrDataDATA+0X0+0x1) & 0X7F		; Bank 1
;  257:(    BCOM_2, dtflashaddr ,            ,   #T21054)

; ITemplate_BCOM1_4
	COM            	(_main_dtflashaddr_20) & 0X7F,	0x0		; Bank 1
	MOVA           	(_main_#T21054_22) & 0X7F		; Bank 1
	COM            	(_main_dtflashaddr_20+0x1) & 0X7F,	0x0		; Bank 1
	MOVA           	(_main_#T21054_22+0x1) & 0X7F		; Bank 1
;  257:(    PARA_2,    #T21054 ,            ,     addri)

; ITemplate_ASGN1_4
	MOV            	(_main_#T21054_22) & 0X7F,	0x0		; Bank 1
	MOVA           	(_DataFlashWrDataDATA+0X2) & 0X7F		; Bank 1
	MOV            	(_main_#T21054_22+0x1) & 0X7F,	0x0		; Bank 1
	MOVA           	(_DataFlashWrDataDATA+0X2+0x1) & 0X7F		; Bank 1
;  257:(    PARA_4, -2023406815 ,            ,      word)

; ITemplate_ASGN1_4
	MOVI           	0x21
	MOVA           	(_DataFlashWrDataDATA+0X4) & 0X7F		; Bank 1
	MOVI           	0x43
	MOVA           	(_DataFlashWrDataDATA+0X4+0x1) & 0X7F		; Bank 1
	MOVI           	0x65
	MOVA           	(_DataFlashWrDataDATA+0X4+0x2) & 0X7F		; Bank 1
	MOVI           	0x87
	MOVA           	(_DataFlashWrDataDATA+0X4+0x3) & 0X7F		; Bank 1
;  257:(     CALLR, (DataFlashWrData.0) ,            ,   #T21064)

; ITemplate_CALL
	SEGMENTSEL     	_DataFlashWrData
	CALL           	_DataFlashWrData		; Bank 0		; ShBank 0
	SEGMENTSEL     	$
	MOVAR          	_main_#T21064_22		; Bank 1
#line 259	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;         if (i != 1)
;  259:(     JEQ_1,          1 ,    #T21064 ,   #L21019)

; ITemplate_JEQ1_4
	MOVRA          	_main_#T21064_22		; Bank 1
	XORI           	0x1
	JBC            	PSW,	0x2
	GOTO           	#L21019
#line 260	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;             dataerr = 1;        //数据校验出错
;  260:(    ASGN_1,          1 ,            ,   dataerr)

; ITemplate_ASGN1_4_R
	MOVI           	0x1
	SECTION        	0x1
	MOVA           	(_dataerr) & 0X7F		; Bank 1
#line 261	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     }
;  261:(     LABEL,    #L21019 ,            ,          )

; ITemplate_LABEL
#L21019
;  254:(     ADD_2, dtflashaddr ,          1 ,dtflashaddr)

; ITemplate_INC_2_TMP
	SECTION        	0x1
	INC            	(_main_dtflashaddr_20) & 0X7F		; Bank 1
	JBS            	PSW,	0x2
	GOTO           	#L21194
	INC            	(_main_dtflashaddr_20+0x1) & 0X7F		; Bank 1
#L21194
;  261:(       JMP,            ,            ,   #L21017)

; ITemplate_JMP
	GOTO           	#L21017
;  261:(     LABEL,    #L21018 ,            ,          )

; ITemplate_LABEL
#L21018
#line 263	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     ROMCL = 0x00;       //退出IAP
;  263:(    ASGN_1,          0 ,            ,     ROMCL)

; ITemplate_CLR1_4_TMP
	CLR            	_ROMCL_0
#line 264	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     CLRWDT();
; ITemplate_LABEL
;-----------Embedded Asm--------------
	CWDT
;-------------------------------------
;     /******************IAP读出校验(示例)******************/
#line 267	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     for (dtflashaddr = STARTADDR; dtflashaddr <= ENDADDR; dtflashaddr++)
;  267:(    ASGN_2,      49152 ,            ,dtflashaddr)

; ITemplate_ASGN1_4_R
	MOVI           	0xc0
	MOVA           	(_main_dtflashaddr_20+0x1) & 0X7F		; Bank 1
	MOVI           	0x0
	MOVA           	(_main_dtflashaddr_20) & 0X7F		; Bank 1
;  267:(     LABEL,    #L21094 ,            ,          )

; ITemplate_LABEL
#L21094
;  267:(    JGT_2U, dtflashaddr ,      49279 ,   #L21095)

; ITemplate_JGT1_4U
	MOV            	(_main_dtflashaddr_20+0x1) & 0X7F,	0x0		; Bank 1
	SUBI           	0xc0
	JBS            	PSW,	0x2
	GOTO           	#L21195
	MOV            	(_main_dtflashaddr_20) & 0X7F,	0x0		; Bank 1
	SUBI           	0x7f
#L21195
	JBS            	PSW,	0x0
	GOTO           	#L21095
;     {
#line 269	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;         j = DataFlashRdData(dtflashaddr);
;  269:(    PARA_2, dtflashaddr ,            ,      addr)

; ITemplate_ASGN1_4
	MOV            	(_main_dtflashaddr_20) & 0X7F,	0x0		; Bank 1
	MOVA           	(_DataFlashRdDataDATA+0X0) & 0X7F		; Bank 1
	MOV            	(_main_dtflashaddr_20+0x1) & 0X7F,	0x0		; Bank 1
	MOVA           	(_DataFlashRdDataDATA+0X0+0x1) & 0X7F		; Bank 1
;  269:(     CALLR, (DataFlashRdData.0) ,            ,   #T21128)

; ITemplate_CALL
	SEGMENTSEL     	_DataFlashRdData
	CALL           	_DataFlashRdData		; Bank 0		; ShBank 0
	SEGMENTSEL     	$
	MOVAR          	_main_#T21128_24		; Bank 1
	MOV            	(?_TMP+0x1) & 0X7F,	0x0		; Bank 0
	MOVAR          	_main_#T21128_24+0x1		; Bank 1
	MOV            	(?_TMP+0x2) & 0X7F,	0x0		; Bank 0
	MOVAR          	_main_#T21128_24+0x2		; Bank 1
	MOV            	(?_TMP+0x3) & 0X7F,	0x0		; Bank 0
	MOVAR          	_main_#T21128_24+0x3		; Bank 1
#line 271	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;         if (j != WRDATA)
;  271:(     JEQ_4, -2023406815 ,    #T21128 ,   #L21096)

; ITemplate_JEQ1_4
	MOVRA          	_main_#T21128_24		; Bank 1
	XORI           	0x21
	JBS            	PSW,	0x2
	GOTO           	#L21196
	SECTION        	0x1
	MOV            	(_main_#T21128_24+0x1) & 0X7F,	0x0		; Bank 1
	XORI           	0x43
	JBS            	PSW,	0x2
	GOTO           	#L21196
	MOV            	(_main_#T21128_24+0x2) & 0X7F,	0x0		; Bank 1
	XORI           	0x65
	JBS            	PSW,	0x2
	GOTO           	#L21196
	MOV            	(_main_#T21128_24+0x3) & 0X7F,	0x0		; Bank 1
	XORI           	0x87
	JBC            	PSW,	0x2
	GOTO           	#L21096
#L21196
#line 272	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;             dataerr = 1;        //数据校验出错
;  272:(    ASGN_1,          1 ,            ,   dataerr)

; ITemplate_ASGN1_4_R
	MOVI           	0x1
	SECTION        	0x1
	MOVA           	(_dataerr) & 0X7F		; Bank 1
#line 273	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     }
;  273:(     LABEL,    #L21096 ,            ,          )

; ITemplate_LABEL
#L21096
;  267:(     ADD_2, dtflashaddr ,          1 ,dtflashaddr)

; ITemplate_INC_2_TMP
	INC            	(_main_dtflashaddr_20) & 0X7F		; Bank 1
	JBS            	PSW,	0x2
	GOTO           	#L21197
	INC            	(_main_dtflashaddr_20+0x1) & 0X7F		; Bank 1
#L21197
;  273:(       JMP,            ,            ,   #L21094)

; ITemplate_JMP
	GOTO           	#L21094
;  273:(     LABEL,    #L21095 ,            ,          )

; ITemplate_LABEL
#L21095
#line 275	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     ROMCL = 0x00;       //退出IAP
;  275:(    ASGN_1,          0 ,            ,     ROMCL)

; ITemplate_CLR1_4_TMP
	CLR            	_ROMCL_0
#line 276	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     CLRWDT();
; ITemplate_LABEL
;-----------Embedded Asm--------------
	CWDT
;-------------------------------------
#line 278	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     while (1)
;  278:(     LABEL,    #L21158 ,            ,          )

; ITemplate_LABEL
#L21158
;     {
#line 280	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;         CLRWDT();
; ITemplate_LABEL
;-----------Embedded Asm--------------
	CWDT
;-------------------------------------
#line 281	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_dataflash\iap_dataflash.c ;     }
;  281:(       JMP,            ,            ,   #L21158)

; ITemplate_JMP
	GOTO           	#L21158

SECTION0C__Program_Files__x86__HRCC_Tools_HRCC_v1_2_0_136_tools_INCLUDE_ES7P169C_h_STATIC0	UNINTIAL       		; Bank 0
_#T0	RSEG           	0X1		; Bank 0

SECTION8D__WorkSpace_AN135_Examples_ES7P169C_ES7P0693_ES7P0031_IAP_iap_dataflash_iap_dataflash_c_STATIC1	PSECT	FLAG=0X1088,ADDR=0X7FCA0
_DATARDTRG_0	RSEG           	0X1		; Bank 0

SECTION8D__WorkSpace_AN135_Examples_ES7P169C_ES7P0693_ES7P0031_IAP_iap_dataflash_iap_dataflash_c_STATIC2	PSECT	FLAG=0X1088,ADDR=0X7FCA2
_WREN_0	RSEG           	0X1		; Bank 0

SECTION8D__WorkSpace_AN135_Examples_ES7P169C_ES7P0693_ES7P0031_IAP_iap_dataflash_iap_dataflash_c_STATIC3	PSECT	FLAG=0X1088,ADDR=0X7FCA3
_FPEE_0	RSEG           	0X1		; Bank 0

SECTION8D__WorkSpace_AN135_Examples_ES7P169C_ES7P0693_ES7P0031_IAP_iap_dataflash_iap_dataflash_c_STATIC4	PSECT	FLAG=0X1088,ADDR=0X7FCA7
_DATARDEN_0	RSEG           	0X1		; Bank 0

SECTION8D__WorkSpace_AN135_Examples_ES7P169C_ES7P0693_ES7P0031_IAP_iap_dataflash_iap_dataflash_c_STATIC5	PSECT	FLAG=0X1088,ADDR=0X7FCB7
_GIE_0	RSEG           	0X1		; Bank 0

SECTION1ID__WorkSpace_AN135_Examples_ES7P169C_ES7P0693_ES7P0031_IAP_iap_dataflash_iap_dataflash_c7	IDATA          		0X80		; Bank 0
_dataerr	DB             	0X0,0XE4		; Bank 0

SECTION0D__WorkSpace_AN135_Examples_ES7P169C_ES7P0693_ES7P0031_IAP_iap_dataflash_iap_dataflash_c_STATIC8	PSECT	FLAG=0x88
_DataFlashErsPage_#T20520_9	RSEG           	0X1		; Bank 0

SECTION0D__WorkSpace_AN135_Examples_ES7P169C_ES7P0693_ES7P0031_IAP_iap_dataflash_iap_dataflash_c_STATIC9	PSECT	FLAG=0x88
_DataFlashRdData_#T20632_12	RSEG           	0X1		; Bank 0

SECTION0D__WorkSpace_AN135_Examples_ES7P169C_ES7P0693_ES7P0031_IAP_iap_dataflash_iap_dataflash_c_STATIC10	PSECT	FLAG=0x88
_DataFlashWrData_#T20984_15	RSEG           	0X1		; Bank 0

SECTION1D__WorkSpace_AN135_Examples_ES7P169C_ES7P0693_ES7P0031_IAP_iap_dataflash_iap_dataflash_c_STATIC	UNINTIAL       	0		; Bank 0
	ORG            	0X94		; Bank 0
_CallFlashEn	RSEG           	0X1		; Bank 0
	ORG            	0X95		; Bank 0
_FlashEwEn	RSEG           	0X1		; Bank 0

SECTION8C__Program_Files__x86__HRCC_Tools_HRCC_v1_2_0_136_tools_INCLUDE_ES7P169C_h_STATIC	UNINTIAL       	0		; Bank 0
	ORG            	0XFF80		; Bank 0
_IAD_0	RSEG           	0X1		; Bank 0
	ORG            	0XFF81		; Bank 0
_IAAL_0	RSEG           	0X1		; Bank 0
	ORG            	0XFF82		; Bank 0
_IAAH_0	RSEG           	0X1		; Bank 0
	ORG            	0XFF8D		; Bank 0
_ANSH_0	RSEG           	0X1		; Bank 0
	ORG            	0XFF8E		; Bank 0
_FRALN_0	RSEG           	0X1		; Bank 0
	ORG            	0XFF8F		; Bank 0
_FRAHN_0	RSEG           	0X1		; Bank 0
	ORG            	0XFF90		; Bank 0
_FRAL_0	RSEG           	0X1		; Bank 0
	ORG            	0XFF91		; Bank 0
_FRAH_0	RSEG           	0X1		; Bank 0
	ORG            	0XFF92		; Bank 0
_ROMDL_0	RSEG           	0X1		; Bank 0
	ORG            	0XFF93		; Bank 0
_ROMDH_0	RSEG           	0X1		; Bank 0
	ORG            	0XFF94		; Bank 0
_ROMCL_0	RSEG           	0X1		; Bank 0
	ORG            	0XFFA1		; Bank 0
_ROMD1L_0	RSEG           	0X1		; Bank 0
	ORG            	0XFFA2		; Bank 0
_ROMD1H_0	RSEG           	0X1		; Bank 0
	ORG            	0XFFA8		; Bank 0
_PA_0	RSEG           	0X1		; Bank 0
	ORG            	0XFFA9		; Bank 0
_PB_0	RSEG           	0X1		; Bank 0
	ORG            	0XFFAA		; Bank 0
_PC_0	RSEG           	0X1		; Bank 0
	ORG            	0XFFAD		; Bank 0
_PAT_0	RSEG           	0X1		; Bank 0
	ORG            	0XFFAE		; Bank 0
_PBT_0	RSEG           	0X1		; Bank 0
	ORG            	0XFFAF		; Bank 0
_PCT_0	RSEG           	0X1		; Bank 0
	ORG            	0XFFBC		; Bank 0
_ANSL_0	RSEG           	0X1		; Bank 0
	ORG            	0XFF8E		; Bank 0
_FRAN_0	RSEG           	0X2		; Bank 0
	ORG            	0XFF90		; Bank 0
_FRA_0	RSEG           	0X2		; Bank 0
	END
