; 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         	_FlashErsPage
	PUBLIC         	_FlashErsPageDATA
	PUBLIC         	_FlashRdData
	PUBLIC         	_FlashRdDataDATA
	PUBLIC         	_FlashWrData
	PUBLIC         	_FlashWrDataDATA
	PUBLIC         	_main
_FlashErsPage_gie_bk_9	EQU            	_FlashErsPageDATA + 0X4		; Bank 0
_FlashErsPage_#T20409_9	EQU            	_FlashErsPageDATA + 0X5		; Bank 0
_FlashErsPage_#T20417_9	EQU            	_FlashErsPageDATA + 0X5		; Bank 0
_FlashRdData_data_12	EQU            	_FlashRdDataDATA + 0X0		; Bank 0
_FlashRdData_gie_bk_12	EQU            	_FlashRdDataDATA + 0X4		; Bank 0
_FlashRdData_#T20524_12	EQU            	_FlashRdDataDATA + 0X2		; Bank 0
_FlashRdData_#T20532_12	EQU            	_FlashRdDataDATA + 0X2		; Bank 0
_FlashRdData_#T20575_12	EQU            	_FlashRdDataDATA + 0X0		; Bank 0
_FlashRdData_#T20578_12	EQU            	_FlashRdDataDATA + 0X5		; Bank 0
_FlashRdData_#T20585_12	EQU            	_FlashRdDataDATA + 0X0		; Bank 0
_FlashRdData_#T20588_12	EQU            	_FlashRdDataDATA + 0X9		; Bank 0
_FlashRdData_#T20589_12	EQU            	_FlashRdDataDATA + 0X0		; Bank 0
_FlashRdData_#T20596_12	EQU            	_FlashRdDataDATA + 0X5		; Bank 0
_FlashRdData_#T20599_12	EQU            	_FlashRdDataDATA + 0X9		; Bank 0
_FlashRdData_#T20600_12	EQU            	_FlashRdDataDATA + 0X5		; Bank 0
_FlashRdData_#T20603_12	EQU            	_FlashRdDataDATA + 0X9		; Bank 0
_FlashWrData_rmdh_15	EQU            	_FlashWrDataDATA + 0X0		; Bank 0
_FlashWrData_rmdl_15	EQU            	_FlashWrDataDATA + 0X1		; Bank 0
_FlashWrData_rmd1h_15	EQU            	_FlashWrDataDATA + 0X2		; Bank 0
_FlashWrData_rmd1l_15	EQU            	_FlashWrDataDATA + 0X3		; Bank 0
_FlashWrData_gie_bk_15	EQU            	_FlashWrDataDATA + 0X8		; Bank 0
_FlashWrData_#T20621_15	EQU            	_FlashWrDataDATA + 0X9		; Bank 0
_FlashWrData_reault_15	EQU            	_FlashWrDataDATA + 0X0		; Bank 0
_FlashWrData_#T20629_15	EQU            	_FlashWrDataDATA + 0X9		; Bank 0
_FlashWrData_#T20937_15	EQU            	_FlashWrDataDATA + 0X2		; Bank 0
_main_i_20	EQU            	_mainDATA + 0X0		; Bank 0
_main_flashaddr_20	EQU            	_mainDATA + 0X1		; Bank 0
_main_#T21008_22	EQU            	_mainDATA + 0X3		; Bank 0
_main_#T21075_24	EQU            	_mainDATA + 0X3		; Bank 0
_main_#T21085_24	EQU            	_mainDATA + 0X0		; Bank 0
_main_#T21140_26	EQU            	_mainDATA + 0X3		; 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_flash.c
; *作  者：AE Team
; *版  本：v1.1，编译于iDesigner(v4.2.3.166) + 工具链HRCC(v1.2.0.106)
; *日  期：2020/12/18
; *描  述：程序区IAP操作，需在配置字使能FREN。程序区地址：0x0000~0x1FFF，0x0000~0x007F为第1页，
;          0x0080~0x00FF为第2页，0x0100~0x017F为第3页，以此类推。。。
;          IAP擦除以页(256个地址单元)为单位，对一个地址执行擦除动作即是擦除这个地址所在的一整页。
;          IAP写入以一个地址单元为单位(一个地址单元对应一个Word)。每页擦除时间至少2ms，单个地址编程时间至少25us。
;          增加IAP擦除编程软件锁，防止程序跑飞误擦程序。
;         注意：建议IAP操作前关闭WDT(配置字选择WDTEN为Disable)，若使能WDT，请设置合理的WDT溢出时间，并合理清狗。
; *备  注：本软件仅供学习和演示使用，对用户直接引用代码所带来的风险或后果不承担任何法律责任。
; *******************************************************/
; #include <hic.h>
; #define CLRWDT()   {__Asm CWDT;}    //宏定义清狗指令
; #define STARTADDR    0x1F00         //宏定义程序区IAP操作起始地址
; #define ENDADDR      0x1F7F         //宏定义程序区IAP操作结束地址
; #define WRDATA       0x12345678     //宏定义待写入的数据
; unsigned char dataerr = 0;      //0：写入与读出相等，1：写入与读出不等
; unsigned char CallFlashEn, FlashEwEn; //软件锁变量
; /******************************************************
; 函数名：void RAMclear(void)
; 描  述：RAM区数据清零，RAM区地址0x0000~0x03FF
; 输入值：无
; 输出值：无
; 返回值：无
; *******************************************************/
; void RAMclear(void)
; {
#line 36	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     for (IAAH = 0; IAAH <= 0x03; IAAH++)
	CLR            	BKSR
;   36:(    ASGN_1,          0 ,            ,      IAAH)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; ITemplate_CLR1_4_TMP
	CLR            	_PC_0
#line 62	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ; }
;   62:(       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 76	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     __asm
	CLR            	BKSR
; ITemplate_LABEL
;-----------Embedded Asm--------------
	
#line 78 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c
        MOVI 0x55
#line 79 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c
        MOVA ROMCH
#line 80 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c
        MOVI 0xFF     
#line 81 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c
        SECSEL _FlashEwEn% 0x80
#line 82 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c
        XOR _FlashEwEn% 0x80, 0 
#line 83 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c
        SECSEL _CallFlashEn% 0x80
#line 84 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c
        XOR _CallFlashEn% 0x80, 0 
#line 85 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c
        JBS PSW, Z 
#line 86 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c
        GOTO $+3
#line 87 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c
        NOP
#line 88 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c
        MOVI 0xAA
#line 89 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c
        MOVA ROMCH
#line 90 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c
        MOVI 0xFF     
#line 91 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c
        SECSEL _FlashEwEn% 0x80
#line 92 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c
        XOR _FlashEwEn% 0x80, 0 
#line 93 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c
        SECSEL _CallFlashEn% 0x80
#line 94 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c
        XOR _CallFlashEn% 0x80, 0 
#line 95 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c
        JBS PSW, Z 
#line 96 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c
        GOTO $+3
#line 97 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c
        NOP
#line 98 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c
        BSS ROMCL, WR    
#line 99 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c
        JBC ROMCL, WR
#line 100 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c
        goto $-1         
#line 101 D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.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 102	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ; }
;  102:(       RET,            ,            ,          )

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

SECTION1FlashErsPage	UNINTIAL       	0		; Bank 0
	ORG            	0X88		; Bank 0
_FlashErsPageDATA	RSEG           	0X6		; Bank 0
FlashErsPage#	CSEG           
_FlashErsPage
; /*******************************************************
; 函数名：void FlashErsPage(unsigned int addr)
; 描  述：擦除地址所在的整页(256 word)，地址范围：0x0000~0x1FFF
; 输入值：Flash地址addr，Flash取反地址addri
; 输出值：无
; 返回值：无
; *******************************************************/
; void FlashErsPage(unsigned int addr, unsigned int addri)
; {
#line 113	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     unsigned char gie_bk = GIE;     //备份GIE
	CLR            	BKSR
;  113:(    CVB_UC,        GIE ,            ,   #T20409)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; ITemplate_CALL
	SEGMENTSEL     	_StartIAP
	CALL           	_StartIAP		; Bank 0		; ShBank 0
	SEGMENTSEL     	$
#line 128	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     ROMCL = 0x00;       //退出IAP
;  128:(    ASGN_1,          0 ,            ,     ROMCL)

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

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

; ITemplate_ASGN1_4_R
	MOVI           	0x34
	MOVA           	_FRAN_0+0x1
	MOVI           	0x56
	MOVA           	_FRAN_0
#line 131	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     CallFlashEn = 0;//清零软件锁变量
;  131:(    ASGN_1,          0 ,            ,CallFlashEn)

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

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

; ITemplate_CVUC_B
	SECTION        	0x0
	BCC            	((_FlashErsPage_#T20520_9)/8) & 0X7F,	(_FlashErsPage_#T20520_9)%8		; Bank 0
	SECTION        	0x1
	JBS            	(_FlashErsPage_gie_bk_9) & 0X7F,	0x0		; Bank 1
	GOTO           	#L21169
	SECTION        	0x0
	BSS            	((_FlashErsPage_#T20520_9)/8) & 0X7F,	(_FlashErsPage_#T20520_9)%8		; Bank 0
#L21169
;  133:(    ASGN_0,    #T20520 ,            ,       GIE)

; ITemplate_ASGN_0_P
	SECTION        	0x0
	JBC            	((_FlashErsPage_#T20520_9)/8) & 0X7F,	(_FlashErsPage_#T20520_9)%8		; Bank 0
	GOTO           	#L21170
	BCC            	(_GIE_0)/8,	(_GIE_0)%8
	GOTO           	#L21171
#L21170
	BSS            	(_GIE_0)/8,	(_GIE_0)%8
#L21171
#line 134	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ; }
;  134:(       RET,            ,            ,          )

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

SECTION1FlashRdData	UNINTIAL       	0		; Bank 0
	ORG            	0X88		; Bank 0
_FlashRdDataDATA	RSEG           	0XD		; Bank 0
FlashRdData#	CSEG           
_FlashRdData
; /*******************************************************
; 函数名：unsigned long FlashRdData(unsigned int addr)
; 描  述：读Flash指定地址的数据，地址范围：0x0000~0x1FFF
; 输入值：Flash地址addr
; 输出值：无
; 返回值：Flash指定地址的数据
; *******************************************************/
; unsigned long FlashRdData(unsigned int addr)
; {
;     unsigned long data;
#line 146	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     unsigned char gie_bk = GIE;     //备份GIE
	CLR            	BKSR
;  146:(    CVB_UC,        GIE ,            ,   #T20524)

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

; ITemplate_ASGN1_4_R
	MOV            	(_FlashRdData_#T20524_12) & 0X7F,	0x0		; Bank 1
	MOVA           	(_FlashRdData_gie_bk_12) & 0X7F		; Bank 1
#line 147	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     CLRWDT();
; ITemplate_LABEL
;-----------Embedded Asm--------------
	CWDT
;-------------------------------------
#line 149	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     while (GIE == 1)GIE = 0;           //启动IAP前关闭全局中断
;  149:(     LABEL,    #L20525 ,            ,          )

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

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

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

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

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

; ITemplate_LABEL
#L20527
#line 151	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     FRAH = addr >> 8;
;  151:(    RSH_2U,       addr ,          8 ,      FRAH)

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

; ITemplate_CVSMT
	MOVRA          	_FlashRdDataDATA+0X0		; Bank 1
	MOVA           	_FRAL_0
#line 153	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     __Asm TBR;          //查表读指令
; ITemplate_LABEL
;-----------Embedded Asm--------------
	TBR
;-------------------------------------
#line 154	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     data = ((unsigned long)ROMD1H << 24) | ((unsigned long)ROMD1L << 16) | ((unsigned long)ROMDH << 8) | ROMDL;
;  154:(   CVUC_UL,     ROMD1H ,            ,   #T20575)

; ITemplate_CVTMS_U
	SECTION        	0x1
	CLR            	(_FlashRdData_#T20575_12+0x1) & 0X7F		; Bank 1
	CLR            	(_FlashRdData_#T20575_12+0x2) & 0X7F		; Bank 1
	CLR            	(_FlashRdData_#T20575_12+0x3) & 0X7F		; Bank 1
	MOV            	_ROMD1H_0,	0x0
	MOVA           	(_FlashRdData_#T20575_12) & 0X7F		; Bank 1
;  154:(    LSH_4U,    #T20575 ,         24 ,   #T20578)

; ITemplate_LSH1_4
	MOVI           	0x18
	ADDI           	0x1
	MOVAR          	?_TMP		; Bank 0
	MOV            	(_FlashRdData_#T20575_12) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x1		; Bank 0
	MOV            	(_FlashRdData_#T20575_12+0x1) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x2		; Bank 0
	MOV            	(_FlashRdData_#T20575_12+0x2) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x3		; Bank 0
	MOV            	(_FlashRdData_#T20575_12+0x3) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x4		; Bank 0
	MOVRA          	?_TMP		; Bank 0
	GOTO           	#L21174
#L21175
	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
#L21174
	ADDI           	0xff
	JBS            	PSW,	0x2
	GOTO           	#L21175
	SECTION        	0x0
	MOV            	(?_TMP+0x1) & 0X7F,	0x0		; Bank 0
	MOVAR          	_FlashRdData_#T20578_12		; Bank 1
	MOV            	(?_TMP+0x2) & 0X7F,	0x0		; Bank 0
	MOVAR          	_FlashRdData_#T20578_12+0x1		; Bank 1
	MOV            	(?_TMP+0x3) & 0X7F,	0x0		; Bank 0
	MOVAR          	_FlashRdData_#T20578_12+0x2		; Bank 1
	MOV            	(?_TMP+0x4) & 0X7F,	0x0		; Bank 0
	MOVAR          	_FlashRdData_#T20578_12+0x3		; Bank 1
;  154:(   CVUC_UL,     ROMD1L ,            ,   #T20585)

; ITemplate_CVTMS_U
	SECTION        	0x1
	CLR            	(_FlashRdData_#T20585_12+0x1) & 0X7F		; Bank 1
	CLR            	(_FlashRdData_#T20585_12+0x2) & 0X7F		; Bank 1
	CLR            	(_FlashRdData_#T20585_12+0x3) & 0X7F		; Bank 1
	MOV            	_ROMD1L_0,	0x0
	MOVA           	(_FlashRdData_#T20585_12) & 0X7F		; Bank 1
;  154:(    LSH_4U,    #T20585 ,         16 ,   #T20588)

; ITemplate_LSH1_4
	MOVI           	0x10
	ADDI           	0x1
	MOVAR          	?_TMP		; Bank 0
	MOV            	(_FlashRdData_#T20585_12) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x1		; Bank 0
	MOV            	(_FlashRdData_#T20585_12+0x1) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x2		; Bank 0
	MOV            	(_FlashRdData_#T20585_12+0x2) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x3		; Bank 0
	MOV            	(_FlashRdData_#T20585_12+0x3) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x4		; Bank 0
	MOVRA          	?_TMP		; Bank 0
	GOTO           	#L21176
#L21177
	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
#L21176
	ADDI           	0xff
	JBS            	PSW,	0x2
	GOTO           	#L21177
	SECTION        	0x0
	MOV            	(?_TMP+0x1) & 0X7F,	0x0		; Bank 0
	MOVAR          	_FlashRdData_#T20588_12		; Bank 1
	MOV            	(?_TMP+0x2) & 0X7F,	0x0		; Bank 0
	MOVAR          	_FlashRdData_#T20588_12+0x1		; Bank 1
	MOV            	(?_TMP+0x3) & 0X7F,	0x0		; Bank 0
	MOVAR          	_FlashRdData_#T20588_12+0x2		; Bank 1
	MOV            	(?_TMP+0x4) & 0X7F,	0x0		; Bank 0
	MOVAR          	_FlashRdData_#T20588_12+0x3		; Bank 1
;  154:(     BOR_4,    #T20578 ,    #T20588 ,   #T20589)

; ITemplate_BOR1_4
	MOVRA          	_FlashRdData_#T20588_12		; Bank 1
	SECTION        	0x1
	IOR            	(_FlashRdData_#T20578_12) & 0X7F,	0x0		; Bank 1
	MOVA           	(_FlashRdData_#T20589_12) & 0X7F		; Bank 1
	MOV            	(_FlashRdData_#T20588_12+0x1) & 0X7F,	0x0		; Bank 1
	IOR            	(_FlashRdData_#T20578_12+0x1) & 0X7F,	0x0		; Bank 1
	MOVA           	(_FlashRdData_#T20589_12+0x1) & 0X7F		; Bank 1
	MOV            	(_FlashRdData_#T20588_12+0x2) & 0X7F,	0x0		; Bank 1
	IOR            	(_FlashRdData_#T20578_12+0x2) & 0X7F,	0x0		; Bank 1
	MOVA           	(_FlashRdData_#T20589_12+0x2) & 0X7F		; Bank 1
	MOV            	(_FlashRdData_#T20588_12+0x3) & 0X7F,	0x0		; Bank 1
	IOR            	(_FlashRdData_#T20578_12+0x3) & 0X7F,	0x0		; Bank 1
	MOVA           	(_FlashRdData_#T20589_12+0x3) & 0X7F		; Bank 1
;  154:(   CVUC_UL,      ROMDH ,            ,   #T20596)

; ITemplate_CVTMS_U
	CLR            	(_FlashRdData_#T20596_12+0x1) & 0X7F		; Bank 1
	CLR            	(_FlashRdData_#T20596_12+0x2) & 0X7F		; Bank 1
	CLR            	(_FlashRdData_#T20596_12+0x3) & 0X7F		; Bank 1
	MOV            	_ROMDH_0,	0x0
	MOVA           	(_FlashRdData_#T20596_12) & 0X7F		; Bank 1
;  154:(    LSH_4U,    #T20596 ,          8 ,   #T20599)

; ITemplate_LSH1_4_8
	MOV            	(_FlashRdData_#T20596_12) & 0X7F,	0x0		; Bank 1
	MOVA           	(_FlashRdData_#T20599_12+0x1) & 0X7F		; Bank 1
	MOV            	(_FlashRdData_#T20596_12+0x1) & 0X7F,	0x0		; Bank 1
	MOVA           	(_FlashRdData_#T20599_12+0x2) & 0X7F		; Bank 1
	MOV            	(_FlashRdData_#T20596_12+0x2) & 0X7F,	0x0		; Bank 1
	MOVA           	(_FlashRdData_#T20599_12+0x3) & 0X7F		; Bank 1
	CLR            	(_FlashRdData_#T20599_12) & 0X7F		; Bank 1
;  154:(     BOR_4,    #T20589 ,    #T20599 ,   #T20600)

; ITemplate_BOR1_4
	MOV            	(_FlashRdData_#T20599_12) & 0X7F,	0x0		; Bank 1
	IOR            	(_FlashRdData_#T20589_12) & 0X7F,	0x0		; Bank 1
	MOVA           	(_FlashRdData_#T20600_12) & 0X7F		; Bank 1
	MOV            	(_FlashRdData_#T20599_12+0x1) & 0X7F,	0x0		; Bank 1
	IOR            	(_FlashRdData_#T20589_12+0x1) & 0X7F,	0x0		; Bank 1
	MOVA           	(_FlashRdData_#T20600_12+0x1) & 0X7F		; Bank 1
	MOV            	(_FlashRdData_#T20599_12+0x2) & 0X7F,	0x0		; Bank 1
	IOR            	(_FlashRdData_#T20589_12+0x2) & 0X7F,	0x0		; Bank 1
	MOVA           	(_FlashRdData_#T20600_12+0x2) & 0X7F		; Bank 1
	MOV            	(_FlashRdData_#T20599_12+0x3) & 0X7F,	0x0		; Bank 1
	IOR            	(_FlashRdData_#T20589_12+0x3) & 0X7F,	0x0		; Bank 1
	MOVA           	(_FlashRdData_#T20600_12+0x3) & 0X7F		; Bank 1
;  154:(   CVUC_UL,      ROMDL ,            ,   #T20603)

; ITemplate_CVTMS_U
	CLR            	(_FlashRdData_#T20603_12+0x1) & 0X7F		; Bank 1
	CLR            	(_FlashRdData_#T20603_12+0x2) & 0X7F		; Bank 1
	CLR            	(_FlashRdData_#T20603_12+0x3) & 0X7F		; Bank 1
	MOV            	_ROMDL_0,	0x0
	MOVA           	(_FlashRdData_#T20603_12) & 0X7F		; Bank 1
;  154:(     BOR_4,    #T20600 ,    #T20603 ,      data)

; ITemplate_BOR1_4
	MOV            	(_FlashRdData_#T20603_12) & 0X7F,	0x0		; Bank 1
	IOR            	(_FlashRdData_#T20600_12) & 0X7F,	0x0		; Bank 1
	MOVA           	(_FlashRdData_data_12) & 0X7F		; Bank 1
	MOV            	(_FlashRdData_#T20603_12+0x1) & 0X7F,	0x0		; Bank 1
	IOR            	(_FlashRdData_#T20600_12+0x1) & 0X7F,	0x0		; Bank 1
	MOVA           	(_FlashRdData_data_12+0x1) & 0X7F		; Bank 1
	MOV            	(_FlashRdData_#T20603_12+0x2) & 0X7F,	0x0		; Bank 1
	IOR            	(_FlashRdData_#T20600_12+0x2) & 0X7F,	0x0		; Bank 1
	MOVA           	(_FlashRdData_data_12+0x2) & 0X7F		; Bank 1
	MOV            	(_FlashRdData_#T20603_12+0x3) & 0X7F,	0x0		; Bank 1
	IOR            	(_FlashRdData_#T20600_12+0x3) & 0X7F,	0x0		; Bank 1
	MOVA           	(_FlashRdData_data_12+0x3) & 0X7F		; Bank 1
#line 155	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     GIE = gie_bk;            //恢复全局中断
;  155:(    CVUC_B,     gie_bk ,            ,   #T20611)

; ITemplate_CVUC_B
	SECTION        	0x0
	BCC            	((_FlashRdData_#T20611_12)/8) & 0X7F,	(_FlashRdData_#T20611_12)%8		; Bank 0
	SECTION        	0x1
	JBS            	(_FlashRdData_gie_bk_12) & 0X7F,	0x0		; Bank 1
	GOTO           	#L21178
	SECTION        	0x0
	BSS            	((_FlashRdData_#T20611_12)/8) & 0X7F,	(_FlashRdData_#T20611_12)%8		; Bank 0
#L21178
;  155:(    ASGN_0,    #T20611 ,            ,       GIE)

; ITemplate_ASGN_0_P
	SECTION        	0x0
	JBC            	((_FlashRdData_#T20611_12)/8) & 0X7F,	(_FlashRdData_#T20611_12)%8		; Bank 0
	GOTO           	#L21179
	BCC            	(_GIE_0)/8,	(_GIE_0)%8
	GOTO           	#L21180
#L21179
	BSS            	(_GIE_0)/8,	(_GIE_0)%8
#L21180
#line 156	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     return data;
;  156:(     RET_4,       data ,            ,      #RET)

; ITemplate_RET2_N
	SECTION        	0x1
	MOV            	(_FlashRdData_data_12) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP_RET		; Bank 0
	MOV            	(_FlashRdData_data_12+0x1) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP_RET+0x1		; Bank 0
	MOV            	(_FlashRdData_data_12+0x2) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP_RET+0x2		; Bank 0
	MOV            	(_FlashRdData_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          	FlashWrData,0X5,0X0,StartIAP

SECTION1FlashWrData	UNINTIAL       	0		; Bank 0
	ORG            	0X88		; Bank 0
_FlashWrDataDATA	RSEG           	0XA		; Bank 0
FlashWrData#	CSEG           
_FlashWrData
; }
; /*******************************************************
; 函数名：void FlashWrData(unsigned int addr, unsigned int word)
; 描  述：写Flash指定地址的数据，地址范围：0x0000~0x1FFF
; 输入值：Flash地址addr，Flash取反地址addri，待写的数据word
; 输出值：无
; 返回值：0:写入失败，1:写入成功
; *******************************************************/
; unsigned char FlashWrData(unsigned int addr, unsigned int addri, unsigned long word)
; {
;     unsigned char rmdh, rmdl, rmd1h, rmd1l;   //临时存放ROMDH、ROMDL值
#line 169	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     unsigned char gie_bk = GIE;     //备份GIE
	CLR            	BKSR
;  169:(    CVB_UC,        GIE ,            ,   #T20621)

; ITemplate_CVB_UC
	MOVI           	0x0
	JBC            	(_GIE_0)/8,	(_GIE_0)%8
	MOVI           	0x1
	SECTION        	0x1
	MOVA           	(_FlashWrData_#T20621_15) & 0X7F		; Bank 1
;  169:(    ASGN_1,    #T20621 ,            ,    gie_bk)

; ITemplate_ASGN1_4_R
	MOV            	(_FlashWrData_#T20621_15) & 0X7F,	0x0		; Bank 1
	MOVA           	(_FlashWrData_gie_bk_15) & 0X7F		; Bank 1
;     unsigned int reault; 
#line 172	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     CLRWDT();
; ITemplate_LABEL
;-----------Embedded Asm--------------
	CWDT
;-------------------------------------
#line 174	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     while (GIE == 1)GIE = 0;           //启动IAP前关闭全局中断
;  174:(     LABEL,    #L20622 ,            ,          )

; ITemplate_LABEL
#L20622
;  174:(    CVB_SC,        GIE ,            ,   #T20629)

; ITemplate_CVB_UC
	MOVI           	0x0
	JBC            	(_GIE_0)/8,	(_GIE_0)%8
	MOVI           	0x1
	MOVA           	(_FlashWrData_#T20629_15) & 0X7F		; Bank 1
;  174:(    JNEQ_1,          1 ,    #T20629 ,   #L20624)

; ITemplate_JNEQ1_4
	MOV            	(_FlashWrData_#T20629_15) & 0X7F,	0x0		; Bank 1
	XORI           	0x1
	JBS            	PSW,	0x2
	GOTO           	#L20624
;  174:(    ASGN_0,          0 ,            ,       GIE)

; ITemplate_CLR_0_TMP
	BCC            	(_GIE_0)/8,	(_GIE_0)%8
;  174:(       JMP,            ,            ,   #L20622)

; ITemplate_JMP
	GOTO           	#L20622
;  174:(     LABEL,    #L20624 ,            ,          )

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

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

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

; ITemplate_RSH1_4U
	MOVI           	0x18
	ADDI           	0x1
	MOVAR          	?_TMP		; Bank 0
	MOV            	(_FlashWrDataDATA+0X4) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x1		; Bank 0
	MOV            	(_FlashWrDataDATA+0X4+0x1) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x2		; Bank 0
	MOV            	(_FlashWrDataDATA+0X4+0x2) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x3		; Bank 0
	MOV            	(_FlashWrDataDATA+0X4+0x3) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP+0x4		; Bank 0
	MOVRA          	?_TMP		; Bank 0
	GOTO           	#L21181
#L21182
	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
#L21181
	ADDI           	0xff
	JBS            	PSW,	0x2
	GOTO           	#L21182
	SECTION        	0x0
	MOV            	(?_TMP+0x1) & 0X7F,	0x0		; Bank 0
	MOVA           	_ROMD1H_0
#line 180	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     ROMD1L = word >> 16;
;  180:(    RSH_4U,       word ,         16 ,    ROMD1L)

; ITemplate_RSH1_4U
	MOVI           	0x10
	ADDI           	0x1
	MOVA           	(?_TMP) & 0X7F		; Bank 0
	MOVRA          	_FlashWrDataDATA+0X4		; Bank 1
	MOVA           	(?_TMP+0x1) & 0X7F		; Bank 0
	MOVRA          	_FlashWrDataDATA+0X4+0x1		; Bank 1
	MOVA           	(?_TMP+0x2) & 0X7F		; Bank 0
	MOVRA          	_FlashWrDataDATA+0X4+0x2		; Bank 1
	MOVA           	(?_TMP+0x3) & 0X7F		; Bank 0
	MOVRA          	_FlashWrDataDATA+0X4+0x3		; Bank 1
	MOVA           	(?_TMP+0x4) & 0X7F		; Bank 0
	MOV            	(?_TMP) & 0X7F,	0x0		; Bank 0
	GOTO           	#L21183
#L21184
	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
#L21183
	ADDI           	0xff
	JBS            	PSW,	0x2
	GOTO           	#L21184
	MOV            	(?_TMP+0x1) & 0X7F,	0x0		; Bank 0
	MOVA           	_ROMD1L_0
#line 181	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     ROMDH = word >> 8;
;  181:(    RSH_4U,       word ,          8 ,     ROMDH)

; ITemplate_RSH1_4U
	MOVI           	0x8
	ADDI           	0x1
	MOVA           	(?_TMP) & 0X7F		; Bank 0
	MOVRA          	_FlashWrDataDATA+0X4		; Bank 1
	MOVA           	(?_TMP+0x1) & 0X7F		; Bank 0
	MOVRA          	_FlashWrDataDATA+0X4+0x1		; Bank 1
	MOVA           	(?_TMP+0x2) & 0X7F		; Bank 0
	MOVRA          	_FlashWrDataDATA+0X4+0x2		; Bank 1
	MOVA           	(?_TMP+0x3) & 0X7F		; Bank 0
	MOVRA          	_FlashWrDataDATA+0X4+0x3		; Bank 1
	MOVA           	(?_TMP+0x4) & 0X7F		; Bank 0
	MOV            	(?_TMP) & 0X7F,	0x0		; Bank 0
	GOTO           	#L21185
#L21186
	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
#L21185
	ADDI           	0xff
	JBS            	PSW,	0x2
	GOTO           	#L21186
	MOV            	(?_TMP+0x1) & 0X7F,	0x0		; Bank 0
	MOVA           	_ROMDH_0
#line 182	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     ROMDL = word;
;  182:(   CVUL_UC,       word ,            ,     ROMDL)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

; ITemplate_INC_1_TMP
	INC            	_ROMD1L_0
#line 196	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     __Asm TBR;          //查表读指令
; ITemplate_LABEL
;-----------Embedded Asm--------------
	TBR
;-------------------------------------
#line 198	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     if (ROMDH == rmdh && ROMDL == rmdl && ROMD1H == rmd1h && ROMD1L == rmd1l)
;  198:(    JNEQ_1,      ROMDH ,       rmdh ,   #L20830)

; ITemplate_JNEQ1_4
	MOV            	(_FlashWrData_rmdh_15) & 0X7F,	0x0		; Bank 1
	XOR            	_ROMDH_0,	0x0
	JBS            	PSW,	0x2
	GOTO           	#L20830
;  198:(    JNEQ_1,      ROMDL ,       rmdl ,   #L20830)

; ITemplate_JNEQ1_4
	MOV            	(_FlashWrData_rmdl_15) & 0X7F,	0x0		; Bank 1
	XOR            	_ROMDL_0,	0x0
	JBS            	PSW,	0x2
	GOTO           	#L20830
;  198:(    JNEQ_1,     ROMD1H ,      rmd1h ,   #L20830)

; ITemplate_JNEQ1_4
	MOV            	(_FlashWrData_rmd1h_15) & 0X7F,	0x0		; Bank 1
	XOR            	_ROMD1H_0,	0x0
	JBS            	PSW,	0x2
	GOTO           	#L20830
;  198:(    JNEQ_1,     ROMD1L ,      rmd1l ,   #L20830)

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

; ITemplate_ASGN1_4_R
	MOVI           	0x0
	MOVA           	(_FlashWrData_reault_15+0x1) & 0X7F		; Bank 1
	MOVI           	0x1
	MOVA           	(_FlashWrData_reault_15) & 0X7F		; Bank 1
#line 201	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     }
;  201:(       JMP,            ,            ,   #L20828)

; ITemplate_JMP
	GOTO           	#L20828
#line 202	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ; 	else
;  202:(     LABEL,    #L20830 ,            ,          )

; ITemplate_LABEL
#L20830
; 	{
#line 204	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ; 		reault = 0;
;  204:(    ASGN_2,          0 ,            ,    reault)

; ITemplate_CLR1_4_TMP
	CLR            	(_FlashWrData_reault_15) & 0X7F		; Bank 1
	CLR            	(_FlashWrData_reault_15+0x1) & 0X7F		; Bank 1
#line 205	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ; 	}
;  205:(     LABEL,    #L20828 ,            ,          )

; ITemplate_LABEL
#L20828
#line 206	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     ROMCL = 0x00;       //退出IAP
;  206:(    ASGN_1,          0 ,            ,     ROMCL)

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

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

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

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

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

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

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

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

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

; ITemplate_CVUC_B
	SECTION        	0x0
	BCC            	((_FlashWrData_#T20930_15)/8) & 0X7F,	(_FlashWrData_#T20930_15)%8		; Bank 0
	SECTION        	0x1
	JBS            	(_FlashWrData_gie_bk_15) & 0X7F,	0x0		; Bank 1
	GOTO           	#L21191
	SECTION        	0x0
	BSS            	((_FlashWrData_#T20930_15)/8) & 0X7F,	(_FlashWrData_#T20930_15)%8		; Bank 0
#L21191
;  215:(    ASGN_0,    #T20930 ,            ,       GIE)

; ITemplate_ASGN_0_P
	SECTION        	0x0
	JBC            	((_FlashWrData_#T20930_15)/8) & 0X7F,	(_FlashWrData_#T20930_15)%8		; Bank 0
	GOTO           	#L21192
	BCC            	(_GIE_0)/8,	(_GIE_0)%8
	GOTO           	#L21193
#L21192
	BSS            	(_GIE_0)/8,	(_GIE_0)%8
#L21193
#line 217	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ; 	return reault;
;  217:(   CVUI_UC,     reault ,            ,   #T20937)

; ITemplate_CVSMT
	SECTION        	0x1
	MOV            	(_FlashWrData_reault_15) & 0X7F,	0x0		; Bank 1
	MOVA           	(_FlashWrData_#T20937_15) & 0X7F		; Bank 1
;  217:(     RET_1,    #T20937 ,            ,      #RET)

; ITemplate_RET2_N
	MOV            	(_FlashWrData_#T20937_15) & 0X7F,	0x0		; Bank 1
	MOVAR          	?_TMP_RET		; Bank 0
	SECTION        	0x0
	RET            			; Bank 0		; ShBank 0
	_DESC          	main,0X4,0X0,RAMclear,GPIOInit,FlashErsPage,FlashWrData,FlashRdData

SECTION1main	UNINTIAL       	0		; Bank 0
	ORG            	0X81		; Bank 0
_mainDATA	RSEG           	0X7		; Bank 0
main#	CSEG           
_main
; }
; /*******************************************************
; 函数名：void main(void)
; 描  述：主函数，程序区IAP操作，程序区地址：0000~1FFF
; 输入值：无
; 输出值：无
; 返回值：无
; *******************************************************/
; void main(void)
; {
;     unsigned char i;
;     unsigned int j;
;     unsigned long codeflash;
;     unsigned int flashaddr;     //地址变量，用于flash擦除、读写操作
#line 234	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     RAMclear();
	CLR            	BKSR
;  234:(      CALL, (RAMclear.0) ,            ,          )

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

; ITemplate_CALL
	SEGMENTSEL     	_GPIOInit
	CALL           	_GPIOInit		; Bank 0		; ShBank 0
	SEGMENTSEL     	$
#line 236	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     CLRWDT();
; ITemplate_LABEL
;-----------Embedded Asm--------------
	CWDT
;-------------------------------------
;     /************IAP擦除操作，以页为单位，每页256Word*******/
#line 239	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     flashaddr = STARTADDR;      //擦除包含flashaddr地址的整页
;  239:(    ASGN_2,       7936 ,            , flashaddr)

; ITemplate_ASGN1_4_R
	MOVI           	0x1f
	MOVAR          	_main_flashaddr_20+0x1		; Bank 1
	MOVI           	0x0
	MOVAR          	_main_flashaddr_20		; Bank 1
;     j = (ENDADDR >> 8) - (STARTADDR >> 8) + 1; //计算在起始地址和结束地址之间需要擦除的页数量
#line 242	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     for (i = 0; i < j; i++)
;  242:(    ASGN_1,          0 ,            ,         i)

; ITemplate_CLR1_4_TMP
	SECTION        	0x1
	CLR            	(_main_i_20) & 0X7F		; Bank 1
;  242:(     LABEL,    #L20975 ,            ,          )

; ITemplate_LABEL
#L20975
;  242:(    JGE_1U,          i ,          1 ,   #L20976)

; ITemplate_JGE1_4U
	MOVI           	0x1
	SUB            	(_main_i_20) & 0X7F,	0x0		; Bank 1
	JBC            	PSW,	0x0
	GOTO           	#L20976
;     {
#line 244	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;         CallFlashEn = 0x55;     //CallFlashEn赋值0x55才能正常执行擦除编程操作
;  244:(    ASGN_1,         85 ,            ,CallFlashEn)

; ITemplate_ASGN1_4_R
	MOVI           	0x55
	MOVA           	(_CallFlashEn) & 0X7F		; Bank 1
#line 245	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;         FlashErsPage(flashaddr, ~flashaddr);
;  245:(    PARA_2,  flashaddr ,            ,      addr)

; ITemplate_ASGN1_4
	MOV            	(_main_flashaddr_20) & 0X7F,	0x0		; Bank 1
	MOVA           	(_FlashErsPageDATA+0X0) & 0X7F		; Bank 1
	MOV            	(_main_flashaddr_20+0x1) & 0X7F,	0x0		; Bank 1
	MOVA           	(_FlashErsPageDATA+0X0+0x1) & 0X7F		; Bank 1
;  245:(    BCOM_2,  flashaddr ,            ,   #T21008)

; ITemplate_BCOM1_4
	COM            	(_main_flashaddr_20) & 0X7F,	0x0		; Bank 1
	MOVA           	(_main_#T21008_22) & 0X7F		; Bank 1
	COM            	(_main_flashaddr_20+0x1) & 0X7F,	0x0		; Bank 1
	MOVA           	(_main_#T21008_22+0x1) & 0X7F		; Bank 1
;  245:(    PARA_2,    #T21008 ,            ,     addri)

; ITemplate_ASGN1_4
	MOV            	(_main_#T21008_22) & 0X7F,	0x0		; Bank 1
	MOVA           	(_FlashErsPageDATA+0X2) & 0X7F		; Bank 1
	MOV            	(_main_#T21008_22+0x1) & 0X7F,	0x0		; Bank 1
	MOVA           	(_FlashErsPageDATA+0X2+0x1) & 0X7F		; Bank 1
;  245:(      CALL, (FlashErsPage.0) ,            ,          )

; ITemplate_CALL
	SEGMENTSEL     	_FlashErsPage
	CALL           	_FlashErsPage		; Bank 0		; ShBank 0
	SEGMENTSEL     	$
#line 246	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;         flashaddr += 0x80;     //擦除下一页
;  246:(     ADD_2,  flashaddr ,        128 , flashaddr)

; ITemplate_ADD1_4
	MOVRA          	_main_flashaddr_20		; Bank 1
	ADDI           	0x80
	MOVAR          	_main_flashaddr_20		; Bank 1
	MOVRA          	_main_flashaddr_20+0x1		; Bank 1
	ADDCI          	0x0
	MOVAR          	_main_flashaddr_20+0x1		; Bank 1
;  242:(     ADD_1,          i ,          1 ,         i)

; ITemplate_INC_1_TMP
	SECTION        	0x1
	INC            	(_main_i_20) & 0X7F		; Bank 1
#line 247	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     }
;  247:(       JMP,            ,            ,   #L20975)

; ITemplate_JMP
	GOTO           	#L20975
;  247:(     LABEL,    #L20976 ,            ,          )

; ITemplate_LABEL
#L20976
#line 249	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     ROMCL = 0x00;       //退出IAP
;  249:(    ASGN_1,          0 ,            ,     ROMCL)

; ITemplate_CLR1_4_TMP
	CLR            	_ROMCL_0
#line 250	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     CLRWDT();
; ITemplate_LABEL
;-----------Embedded Asm--------------
	CWDT
;-------------------------------------
;     /******************IAP写入并读出校验********************/
#line 253	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     for (flashaddr = STARTADDR; flashaddr <= ENDADDR; flashaddr += 2)
;  253:(    ASGN_2,       7936 ,            , flashaddr)

; ITemplate_ASGN1_4_R
	MOVI           	0x1f
	MOVA           	(_main_flashaddr_20+0x1) & 0X7F		; Bank 1
	MOVI           	0x0
	MOVA           	(_main_flashaddr_20) & 0X7F		; Bank 1
;  253:(     LABEL,    #L21038 ,            ,          )

; ITemplate_LABEL
#L21038
;  253:(    JGT_2U,  flashaddr ,       8063 ,   #L21039)

; ITemplate_JGT1_4U
	MOV            	(_main_flashaddr_20+0x1) & 0X7F,	0x0		; Bank 1
	SUBI           	0x1f
	JBS            	PSW,	0x2
	GOTO           	#L21194
	MOV            	(_main_flashaddr_20) & 0X7F,	0x0		; Bank 1
	SUBI           	0x7f
#L21194
	JBS            	PSW,	0x0
	GOTO           	#L21039
;     {
#line 255	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;         CallFlashEn = 0x55;     //CallFlashEn赋值0x55才能正常执行擦除编程操作
;  255:(    ASGN_1,         85 ,            ,CallFlashEn)

; ITemplate_ASGN1_4_R
	MOVI           	0x55
	MOVA           	(_CallFlashEn) & 0X7F		; Bank 1
#line 256	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;         i = FlashWrData(flashaddr, ~flashaddr, WRDATA);
;  256:(    PARA_2,  flashaddr ,            ,      addr)

; ITemplate_ASGN1_4
	MOV            	(_main_flashaddr_20) & 0X7F,	0x0		; Bank 1
	MOVA           	(_FlashWrDataDATA+0X0) & 0X7F		; Bank 1
	MOV            	(_main_flashaddr_20+0x1) & 0X7F,	0x0		; Bank 1
	MOVA           	(_FlashWrDataDATA+0X0+0x1) & 0X7F		; Bank 1
;  256:(    BCOM_2,  flashaddr ,            ,   #T21075)

; ITemplate_BCOM1_4
	COM            	(_main_flashaddr_20) & 0X7F,	0x0		; Bank 1
	MOVA           	(_main_#T21075_24) & 0X7F		; Bank 1
	COM            	(_main_flashaddr_20+0x1) & 0X7F,	0x0		; Bank 1
	MOVA           	(_main_#T21075_24+0x1) & 0X7F		; Bank 1
;  256:(    PARA_2,    #T21075 ,            ,     addri)

; ITemplate_ASGN1_4
	MOV            	(_main_#T21075_24) & 0X7F,	0x0		; Bank 1
	MOVA           	(_FlashWrDataDATA+0X2) & 0X7F		; Bank 1
	MOV            	(_main_#T21075_24+0x1) & 0X7F,	0x0		; Bank 1
	MOVA           	(_FlashWrDataDATA+0X2+0x1) & 0X7F		; Bank 1
;  256:(    PARA_4,  305419896 ,            ,      word)

; ITemplate_ASGN1_4
	MOVI           	0x78
	MOVA           	(_FlashWrDataDATA+0X4) & 0X7F		; Bank 1
	MOVI           	0x56
	MOVA           	(_FlashWrDataDATA+0X4+0x1) & 0X7F		; Bank 1
	MOVI           	0x34
	MOVA           	(_FlashWrDataDATA+0X4+0x2) & 0X7F		; Bank 1
	MOVI           	0x12
	MOVA           	(_FlashWrDataDATA+0X4+0x3) & 0X7F		; Bank 1
;  256:(     CALLR, (FlashWrData.0) ,            ,   #T21085)

; ITemplate_CALL
	SEGMENTSEL     	_FlashWrData
	CALL           	_FlashWrData		; Bank 0		; ShBank 0
	SEGMENTSEL     	$
	MOVAR          	_main_#T21085_24		; Bank 1
#line 258	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;         if (i != 1)
;  258:(     JEQ_1,          1 ,    #T21085 ,   #L21040)

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

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

; ITemplate_LABEL
#L21040
;  253:(     ADD_2,  flashaddr ,          2 , flashaddr)

; ITemplate_ADD1_4
	SECTION        	0x1
	MOV            	(_main_flashaddr_20) & 0X7F,	0x0		; Bank 1
	ADDI           	0x2
	MOVA           	(_main_flashaddr_20) & 0X7F		; Bank 1
	MOV            	(_main_flashaddr_20+0x1) & 0X7F,	0x0		; Bank 1
	ADDCI          	0x0
	MOVA           	(_main_flashaddr_20+0x1) & 0X7F		; Bank 1
;  260:(       JMP,            ,            ,   #L21038)

; ITemplate_JMP
	GOTO           	#L21038
;  260:(     LABEL,    #L21039 ,            ,          )

; ITemplate_LABEL
#L21039
#line 262	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     ROMCL = 0x00;       //退出IAP
;  262:(    ASGN_1,          0 ,            ,     ROMCL)

; ITemplate_CLR1_4_TMP
	CLR            	_ROMCL_0
#line 263	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     CLRWDT();
; ITemplate_LABEL
;-----------Embedded Asm--------------
	CWDT
;-------------------------------------
;     /******************IAP读出校验(示例)********************/
#line 266	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     for (flashaddr = STARTADDR; flashaddr <= ENDADDR; flashaddr += 2)
;  266:(    ASGN_2,       7936 ,            , flashaddr)

; ITemplate_ASGN1_4_R
	MOVI           	0x1f
	MOVA           	(_main_flashaddr_20+0x1) & 0X7F		; Bank 1
	MOVI           	0x0
	MOVA           	(_main_flashaddr_20) & 0X7F		; Bank 1
;  266:(     LABEL,    #L21106 ,            ,          )

; ITemplate_LABEL
#L21106
;  266:(    JGT_2U,  flashaddr ,       8063 ,   #L21107)

; ITemplate_JGT1_4U
	MOV            	(_main_flashaddr_20+0x1) & 0X7F,	0x0		; Bank 1
	SUBI           	0x1f
	JBS            	PSW,	0x2
	GOTO           	#L21195
	MOV            	(_main_flashaddr_20) & 0X7F,	0x0		; Bank 1
	SUBI           	0x7f
#L21195
	JBS            	PSW,	0x0
	GOTO           	#L21107
;     {
#line 268	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;         codeflash = FlashRdData(flashaddr);
;  268:(    PARA_2,  flashaddr ,            ,      addr)

; ITemplate_ASGN1_4
	MOV            	(_main_flashaddr_20) & 0X7F,	0x0		; Bank 1
	MOVA           	(_FlashRdDataDATA+0X0) & 0X7F		; Bank 1
	MOV            	(_main_flashaddr_20+0x1) & 0X7F,	0x0		; Bank 1
	MOVA           	(_FlashRdDataDATA+0X0+0x1) & 0X7F		; Bank 1
;  268:(     CALLR, (FlashRdData.0) ,            ,   #T21140)

; ITemplate_CALL
	SEGMENTSEL     	_FlashRdData
	CALL           	_FlashRdData		; Bank 0		; ShBank 0
	SEGMENTSEL     	$
	MOVAR          	_main_#T21140_26		; Bank 1
	MOV            	(?_TMP+0x1) & 0X7F,	0x0		; Bank 0
	MOVAR          	_main_#T21140_26+0x1		; Bank 1
	MOV            	(?_TMP+0x2) & 0X7F,	0x0		; Bank 0
	MOVAR          	_main_#T21140_26+0x2		; Bank 1
	MOV            	(?_TMP+0x3) & 0X7F,	0x0		; Bank 0
	MOVAR          	_main_#T21140_26+0x3		; Bank 1
#line 270	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;         if (codeflash != WRDATA)
;  270:(     JEQ_4,  305419896 ,    #T21140 ,   #L21108)

; ITemplate_JEQ1_4
	MOVRA          	_main_#T21140_26		; Bank 1
	XORI           	0x78
	JBS            	PSW,	0x2
	GOTO           	#L21196
	SECTION        	0x1
	MOV            	(_main_#T21140_26+0x1) & 0X7F,	0x0		; Bank 1
	XORI           	0x56
	JBS            	PSW,	0x2
	GOTO           	#L21196
	MOV            	(_main_#T21140_26+0x2) & 0X7F,	0x0		; Bank 1
	XORI           	0x34
	JBS            	PSW,	0x2
	GOTO           	#L21196
	MOV            	(_main_#T21140_26+0x3) & 0X7F,	0x0		; Bank 1
	XORI           	0x12
	JBC            	PSW,	0x2
	GOTO           	#L21108
#L21196
#line 271	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;             dataerr = 1;        //数据校验出错
;  271:(    ASGN_1,          1 ,            ,   dataerr)

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

; ITemplate_LABEL
#L21108
;  266:(     ADD_2,  flashaddr ,          2 , flashaddr)

; ITemplate_ADD1_4
	MOV            	(_main_flashaddr_20) & 0X7F,	0x0		; Bank 1
	ADDI           	0x2
	MOVA           	(_main_flashaddr_20) & 0X7F		; Bank 1
	MOV            	(_main_flashaddr_20+0x1) & 0X7F,	0x0		; Bank 1
	ADDCI          	0x0
	MOVA           	(_main_flashaddr_20+0x1) & 0X7F		; Bank 1
;  272:(       JMP,            ,            ,   #L21106)

; ITemplate_JMP
	GOTO           	#L21106
;  272:(     LABEL,    #L21107 ,            ,          )

; ITemplate_LABEL
#L21107
#line 274	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     ROMCL = 0x00;       //退出IAP
;  274:(    ASGN_1,          0 ,            ,     ROMCL)

; ITemplate_CLR1_4_TMP
	CLR            	_ROMCL_0
#line 275	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     CLRWDT();
; ITemplate_LABEL
;-----------Embedded Asm--------------
	CWDT
;-------------------------------------
#line 277	D:\WorkSpace\AN135_Examples_ES7P169C_ES7P0693_ES7P0031\IAP\iap_flash\iap_flash.c ;     while (1)
;  277:(     LABEL,    #L21161 ,            ,          )

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

; ITemplate_JMP
	GOTO           	#L21161

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_flash_iap_flash_c_STATIC1	PSECT	FLAG=0X1088,ADDR=0X7FCA2
_WREN_0	RSEG           	0X1		; Bank 0

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

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

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

SECTION0D__WorkSpace_AN135_Examples_ES7P169C_ES7P0693_ES7P0031_IAP_iap_flash_iap_flash_c_STATIC6	PSECT	FLAG=0x88
_FlashErsPage_#T20520_9	RSEG           	0X1		; Bank 0

SECTION0D__WorkSpace_AN135_Examples_ES7P169C_ES7P0693_ES7P0031_IAP_iap_flash_iap_flash_c_STATIC7	PSECT	FLAG=0x88
_FlashRdData_#T20611_12	RSEG           	0X1		; Bank 0

SECTION0D__WorkSpace_AN135_Examples_ES7P169C_ES7P0693_ES7P0031_IAP_iap_flash_iap_flash_c_STATIC8	PSECT	FLAG=0x88
_FlashWrData_#T20930_15	RSEG           	0X1		; Bank 0

SECTION1D__WorkSpace_AN135_Examples_ES7P169C_ES7P0693_ES7P0031_IAP_iap_flash_iap_flash_c_STATIC	UNINTIAL       	0		; Bank 0
	ORG            	0X95		; Bank 0
_CallFlashEn	RSEG           	0X1		; Bank 0
	ORG            	0X96		; 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
