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

📄 v3k_fram_uart_demo1_sdcc.asm

📁 DEMO程序 单周期8051内核 8K铁电FRAM 56IO 4KRAM 40MIPS
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:206: txmit0(10);
;     genCall
	mov	dpl,#0x0A
	push	ar2
	push	ar3
	lcall	_txmit0
	pop	ar3
	pop	ar2
;     genDjnz
;     genMinus
;     genMinusDec
	dec	r2
	cjne	r2,#0xff,00235$
	dec	r3
00235$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$203$2$10 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:203: for( cptr = 0; cptr < 010; cptr++)
;     genIfx
	mov	a,r2
	orl	a,r3
;     genIfxJump
;	Peephole 109	removed ljmp by inverse jump logic
	C$V3K_FRAM_UART_Demo1_SDCC.c$211$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:211: do{
;     genAssign
;	Peephole 256.c	loading r2 with zero from a
;	Peephole 256.d	loading r3 with zero from a
	jnz	00165$
00236$:
	mov	r2,a
	mov	r3,a
00125$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$212$2$11 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:212: txmit0(msg[cptr++]);
;     genAssign
	mov	ar4,r2
	mov	ar5,r3
;     genPlus
;     genPlusIncr
	inc	r2
	cjne	r2,#0x00,00237$
	inc	r3
00237$:
;     genPlus
;	Peephole 236.g	used r4 instead of ar4
	mov	a,r4
	add	a,#_msg
	mov	r0,a
;     genPointerGet
;     genNearPointerGet
	mov	dpl,@r0
;     genCall
	push	ar2
	push	ar3
	lcall	_txmit0
	pop	ar3
	pop	ar2
	C$V3K_FRAM_UART_Demo1_SDCC.c$213$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:213: }while(msg[cptr]!= '\0');
;     genPlus
;	Peephole 236.g	used r2 instead of ar2
	mov	a,r2
	add	a,#_msg
	mov	r0,a
;     genPointerGet
;     genNearPointerGet
	mov	ar4,@r0
;     genCmpEq
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 199	optimized misc jump sequence
	cjne	r4,#0x00,00125$
;00238$:
;	Peephole 200	removed redundant sjmp
00239$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$215$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:215: txmit0(13);					//Send Carriage Return
;     genCall
	mov	dpl,#0x0D
	lcall	_txmit0
	C$V3K_FRAM_UART_Demo1_SDCC.c$216$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:216: txmit0(10);					//Send Line Feed
;     genCall
	mov	dpl,#0x0A
	lcall	_txmit0
	C$V3K_FRAM_UART_Demo1_SDCC.c$220$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:220: for(cptr = 0x000; cptr < 0x1C00; cptr+= 0x010)
;     genAssign
	mov	r2,#0x00
	mov	r3,#0x00
00166$:
;     genCmpLt
;     genCmp
	clr	c
	mov	a,r2
	subb	a,#0x00
	mov	a,r3
	xrl	a,#0x80
	subb	a,#0x9c
;     genIfxJump
;	Peephole 108	removed ljmp by inverse jump logic
	jnc	00129$
00240$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$222$2$12 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:222: ReadFramUart0(cptr);
;     genCall
	mov	dpl,r2
	mov	dph,r3
	push	ar2
	push	ar3
	lcall	_ReadFramUart0
	pop	ar3
	pop	ar2
	C$V3K_FRAM_UART_Demo1_SDCC.c$223$2$12 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:223: ReadFramUart0(cptr+1);
;     genPlus
;     genPlusIncr
	mov	a,#0x01
;	Peephole 236.a	used r2 instead of ar2
	add	a,r2
	mov	dpl,a
;	Peephole 181	changed mov to clr
	clr	a
;	Peephole 236.b	used r3 instead of ar3
	addc	a,r3
	mov	dph,a
;     genCall
	push	ar2
	push	ar3
	lcall	_ReadFramUart0
	pop	ar3
	pop	ar2
	C$V3K_FRAM_UART_Demo1_SDCC.c$224$2$12 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:224: delay(70);
;     genCall
;	Peephole 182.b	used 16 bit load of dptr
	mov	dptr,#0x0046
	push	ar2
	push	ar3
	lcall	_delay
	pop	ar3
	pop	ar2
	C$V3K_FRAM_UART_Demo1_SDCC.c$220$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:220: for(cptr = 0x000; cptr < 0x1C00; cptr+= 0x010)
;     genPlus
	mov	a,#0x10
;	Peephole 236.a	used r2 instead of ar2
	add	a,r2
	mov	r2,a
;	Peephole 181	changed mov to clr
	clr	a
;	Peephole 236.b	used r3 instead of ar3
	addc	a,r3
	mov	r3,a
	C$V3K_FRAM_UART_Demo1_SDCC.c$228$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:228: while(1);
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00166$
00129$:
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00129$
00170$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$230$1$1 ==.
	XG$main$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'INT0Interrupt'
;------------------------------------------------------------
;bof                       Allocated to registers 
;cptr                      Allocated to registers r2 
;------------------------------------------------------------
	G$INT0Interrupt$0$0 ==.
	C$V3K_FRAM_UART_Demo1_SDCC.c$243$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:243: void INT0Interrupt(void) interrupt 0
;	-----------------------------------------
;	 function INT0Interrupt
;	-----------------------------------------
_INT0Interrupt:
	push	acc
	push	b
	push	dpl
	push	dph
	push	(0+2)
	push	(0+3)
	push	(0+4)
	push	(0+5)
	push	(0+6)
	push	(0+7)
	push	(0+0)
	push	(0+1)
	push	psw
	mov	psw,#0x00
	C$V3K_FRAM_UART_Demo1_SDCC.c$249$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:249: INTEN1 = 0x00;						//Disable UART0 Interrupt
;     genAssign
	mov	_INTEN1,#0x00
	C$V3K_FRAM_UART_Demo1_SDCC.c$251$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:251: do{
;     genAssign
	mov	r2,#0x00
00101$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$252$2$2 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:252: B = msgint0[cptr++];
;     genAssign
	mov	ar3,r2
;     genPlus
;     genPlusIncr
	inc	r2
;     genPlus
;	Peephole 236.g	used r3 instead of ar3
	mov	a,r3
	add	a,#_msgint0
	mov	r0,a
;     genPointerGet
;     genNearPointerGet
	mov	_B,@r0
	C$V3K_FRAM_UART_Demo1_SDCC.c$253$2$2 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:253: txmit0(B);
;     genCall
	mov	dpl,_B
	push	ar2
	lcall	_txmit0
	pop	ar2
	C$V3K_FRAM_UART_Demo1_SDCC.c$254$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:254: }while(msgint0[cptr]!= '\0');
;     genPlus
;	Peephole 236.g	used r2 instead of ar2
	mov	a,r2
	add	a,#_msgint0
	mov	r0,a
;     genPointerGet
;     genNearPointerGet
	mov	ar3,@r0
;     genCmpEq
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 199	optimized misc jump sequence
	cjne	r3,#0x00,00101$
;00108$:
;	Peephole 200	removed redundant sjmp
00109$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$256$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:256: txmit0(13);					//Send Carriage Return
;     genCall
	mov	dpl,#0x0D
	lcall	_txmit0
	C$V3K_FRAM_UART_Demo1_SDCC.c$257$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:257: txmit0(10);					//Send Line Feed
;     genCall
	mov	dpl,#0x0A
	lcall	_txmit0
	C$V3K_FRAM_UART_Demo1_SDCC.c$259$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:259: INTEN1 = 0x21;						//Enable UART0 Interrupt + INT0
;     genAssign
	mov	_INTEN1,#0x21
00104$:
	pop	psw
	pop	(0+1)
	pop	(0+0)
	pop	(0+7)
	pop	(0+6)
	pop	(0+5)
	pop	(0+4)
	pop	(0+3)
	pop	(0+2)
	pop	dph
	pop	dpl
	pop	b
	pop	acc
	C$V3K_FRAM_UART_Demo1_SDCC.c$260$1$1 ==.
	XG$INT0Interrupt$0$0 ==.
	reti
;------------------------------------------------------------
;Allocation info for local variables in function 'UART0Interrupt'
;------------------------------------------------------------
;genvar                    Allocated to registers r3 
;------------------------------------------------------------
	G$UART0Interrupt$0$0 ==.
	C$V3K_FRAM_UART_Demo1_SDCC.c$266$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:266: void UART0Interrupt(void) interrupt 5
;	-----------------------------------------
;	 function UART0Interrupt
;	-----------------------------------------
_UART0Interrupt:
	push	acc
	push	b
	push	dpl
	push	dph
	push	(0+2)
	push	(0+3)
	push	(0+4)
	push	(0+5)
	push	(0+6)
	push	(0+7)
	push	(0+0)
	push	(0+1)
	push	psw
	mov	psw,#0x00
	C$V3K_FRAM_UART_Demo1_SDCC.c$270$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:270: INTEN1 = 0x00;						//Disable UART0 Interrupt
;     genAssign
	mov	_INTEN1,#0x00
	C$V3K_FRAM_UART_Demo1_SDCC.c$273$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:273: genvar = UART0INT;
;     genAssign
	mov	r2,_UART0INT
;     genAssign
	C$V3K_FRAM_UART_Demo1_SDCC.c$275$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:275: if(genvar & 0x02)
;     genAnd
;	peephole 177.h	optimized mov sequence
	mov	a,r2
;	Peephole 236.i	used r3 instead of ar3
	mov	r3,a
;     genIfxJump
;	Peephole 111	removed ljmp by inverse jump logic
	jnb	acc.1,00102$
00109$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$276$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:276: txmit0(UART0BUF);				//Send back the received character
;     genCall
	mov	dpl,_UART0BUF
	push	ar3
	lcall	_txmit0
	pop	ar3
00102$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$280$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:280: if(genvar &= 0x04)
;     genAnd
	mov	a,r3
;     genIfxJump
;	Peephole 111	removed ljmp by inverse jump logic
	jnb	acc.2,00104$
00110$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$282$2$2 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:282: genvar = UART0BUF;				//Read S0BUF to clear RX OV condition...
;     genDummyRead
	mov	a,_UART0BUF
	C$V3K_FRAM_UART_Demo1_SDCC.c$285$2$2 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:285: txmit0(' ');					//Send " OV!" on serial port
;     genCall
	mov	dpl,#0x20
	lcall	_txmit0
	C$V3K_FRAM_UART_Demo1_SDCC.c$286$2$2 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:286: txmit0('O');					//
;     genCall
	mov	dpl,#0x4F
	lcall	_txmit0
	C$V3K_FRAM_UART_Demo1_SDCC.c$287$2$2 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:287: txmit0('V');					//
;     genCall
	mov	dpl,#0x56
	lcall	_txmit0
	C$V3K_FRAM_UART_Demo1_SDCC.c$288$2$2 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:288: txmit0('!');					//
;     genCall
	mov	dpl,#0x21
	lcall	_txmit0
00104$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$292$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:292: INTEN1 = 0x21;						//Enable UART0 Interrupt + INT0
;     genAssign
	mov	_INTEN1,#0x21
00105$:
	pop	psw
	pop	(0+1)
	pop	(0+0)
	pop	(0+7)
	pop	(0+6)
	pop	(0+5)
	pop	(0+4)
	pop	(0+3)
	pop	(0+2)
	pop	dph
	pop	dpl
	pop	b
	pop	acc
	C$V3K_FRAM_UART_Demo1_SDCC.c$294$1$1 ==.
	XG$UART0Interrupt$0$0 ==.
	reti
;------------------------------------------------------------
;Allocation info for local variables in function 'uart0config'
;------------------------------------------------------------
;------------------------------------------------------------
	G$uart0config$0$0 ==.
	C$V3K_FRAM_UART_Demo1_SDCC.c$306$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:306: void uart0config()
;	-----------------------------------------
;	 function uart0config
;	-----------------------------------------
_uart0config:
	C$V3K_FRAM_UART_Demo1_SDCC.c$310$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:310: UART0CFG = 0x90;					//No Fine adjustment on baud rate
;     genAssign
	mov	_UART0CFG,#0x90
	C$V3K_FRAM_UART_Demo1_SDCC.c$315$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:315: UART0INT = 0x62;					//Enable RX AV + RXO V int + Enable Reception
;     genAssign
	mov	_UART0INT,#0x62
	C$V3K_FRAM_UART_Demo1_SDCC.c$316$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:316: UART0EXT = 0x00;					//Not using UART0 Extensions
;     genAssign
	mov	_UART0EXT,#0x00
	C$V3K_FRAM_UART_Demo1_SDCC.c$318$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:318: UART0BRL = 0x09;					//Reload for 115200
;     genAssign
	mov	_UART0BRL,#0x09
	C$V3K_FRAM_UART_Demo1_SDCC.c$319$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:319: UART0BRH = 0x00;					//
;     genAssign
	mov	_UART0BRH,#0x00
00101$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$321$1$1 ==.
	XG$uart0config$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'txmit0'
;------------------------------------------------------------
;charact                   Allocated to registers 
;------------------------------------------------------------
	G$txmit0$0$0 ==.
	C$V3K_FRAM_UART_Demo1_SDCC.c$330$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:330: void txmit0( unsigned char charact){
;	-----------------------------------------
;	 function txmit0
;	-----------------------------------------
_txmit0:
;     genReceive
	mov	_UART0BUF,dpl
	C$V3K_FRAM_UART_Demo1_SDCC.c$333$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:333: while(!(UART0INT & 0x01));
00101$:
;     genAnd
	mov	a,_UART0INT
;     genIfxJump
;	Peephole 111	removed ljmp by inverse jump logic
	jnb	acc.0,00101$
00107$:
00104$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$335$1$1 ==.
	XG$txmit0$0$0 ==.
	ret
;------------------------------------------------------------
;Allocation info for local variables in function 'bin2bcdser0'
;------------------------------------------------------------
;number                    Allocated to registers r2 r3 
;x                         Allocated to registers r5 
;zerodisplay               Allocated to registers r4 

⌨️ 快捷键说明

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