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

📄 v3k_fram_uart_demo1_sdcc.asm

📁 DEMO程序 单周期8051内核 8K铁电FRAM 56IO 4KRAM 40MIPS
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;------------------------------------------------------------
	G$bin2bcdser0$0$0 ==.
	C$V3K_FRAM_UART_Demo1_SDCC.c$344$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:344: void bin2bcdser0(unsigned int  number){
;	-----------------------------------------
;	 function bin2bcdser0
;	-----------------------------------------
_bin2bcdser0:
;     genReceive
	mov	r2,dpl
	mov	r3,dph
	C$V3K_FRAM_UART_Demo1_SDCC.c$348$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:348: unsigned char zerodisplay = 0;     //intialise startdisplay to 0 -> do not display if number is zero
;     genAssign
	mov	r4,#0x00
	C$V3K_FRAM_UART_Demo1_SDCC.c$351$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:351: x = (number/10000);				// Define number of then's of thousands
;     genAssign
	mov	__divuint_PARM_2,#0x10
	mov	(__divuint_PARM_2 + 1),#0x27
;     genCall
	mov	dpl,r2
	mov	dph,r3
	push	ar2
	push	ar3
	push	ar4
	lcall	__divuint
	mov	r5,dpl
	mov	r6,dph
	pop	ar4
	pop	ar3
	pop	ar2
;     genCast
	C$V3K_FRAM_UART_Demo1_SDCC.c$352$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:352: if(x>0)						// If number > 0 display it
;     genCmpGt
;     genCmp
;     genIfxJump
;	Peephole 108	removed ljmp by inverse jump logic
;	Peephole 132.b	optimized genCmpGt by inverse logic (acc differs)
	mov	a,r5
	add	a,#0xff - 0x00
	jnc	00102$
00131$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$354$2$2 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:354: zerodisplay = 1;			// number > 0 -> when zero is next encountered, display it
;     genAssign
	mov	r4,#0x01
	C$V3K_FRAM_UART_Demo1_SDCC.c$355$2$2 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:355: number = number - (x*10000);
;     genCast
	mov	ar6,r5
	mov	r7,#0x00
;     genAssign
	mov	__mulint_PARM_2,#0x10
	mov	(__mulint_PARM_2 + 1),#0x27
;     genCall
	mov	dpl,r6
	mov	dph,r7
	push	ar2
	push	ar3
	push	ar4
	push	ar5
	lcall	__mulint
	mov	r6,dpl
	mov	r7,dph
	pop	ar5
	pop	ar4
	pop	ar3
	pop	ar2
;     genMinus
	mov	a,r2
	clr	c
;	Peephole 236.l	used r6 instead of ar6
	subb	a,r6
	mov	r2,a
	mov	a,r3
;	Peephole 236.l	used r7 instead of ar7
	subb	a,r7
	mov	r3,a
	C$V3K_FRAM_UART_Demo1_SDCC.c$356$2$2 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:356: txmit0((x+'0'));
;     genPlus
	mov	a,#0x30
;	Peephole 236.a	used r5 instead of ar5
	add	a,r5
	mov	dpl,a
;     genCall
	push	ar2
	push	ar3
	push	ar4
	lcall	_txmit0
	pop	ar4
	pop	ar3
	pop	ar2
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00103$
00102$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$359$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:359: txmit0(' ');			//display a blank space instead
;     genCall
	mov	dpl,#0x20
	push	ar2
	push	ar3
	push	ar4
	lcall	_txmit0
	pop	ar4
	pop	ar3
	pop	ar2
00103$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$361$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:361: x = (number/1000);				//Define the number of thousands
;     genAssign
	mov	__divuint_PARM_2,#0xE8
	mov	(__divuint_PARM_2 + 1),#0x03
;     genCall
	mov	dpl,r2
	mov	dph,r3
	push	ar2
	push	ar3
	push	ar4
	lcall	__divuint
	mov	r6,dpl
	mov	r7,dph
	pop	ar4
	pop	ar3
	pop	ar2
;     genCast
	mov	ar5,r6
	C$V3K_FRAM_UART_Demo1_SDCC.c$363$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:363: if( (zerodisplay !=0)|| (x !=0))
;     genCmpEq
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 199	optimized misc jump sequence
	cjne	r4,#0x00,00104$
;00132$:
;	Peephole 200	removed redundant sjmp
00133$:
;     genCmpEq
	cjne	r5,#0x00,00134$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00105$
00134$:
00104$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$365$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:365: txmit0((x+'0'));
;     genPlus
	mov	a,#0x30
;	Peephole 236.a	used r5 instead of ar5
	add	a,r5
	mov	dpl,a
;     genCall
	push	ar2
	push	ar3
	push	ar4
	push	ar5
	lcall	_txmit0
	pop	ar5
	pop	ar4
	pop	ar3
	pop	ar2
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00106$
00105$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$367$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:367: txmit0(' ');			//display a blank space instead
;     genCall
	mov	dpl,#0x20
	push	ar2
	push	ar3
	push	ar4
	push	ar5
	lcall	_txmit0
	pop	ar5
	pop	ar4
	pop	ar3
	pop	ar2
00106$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$369$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:369: if(x>0)
;     genCmpGt
;     genCmp
;     genIfxJump
;	Peephole 108	removed ljmp by inverse jump logic
;	Peephole 132.b	optimized genCmpGt by inverse logic (acc differs)
	mov	a,r5
	add	a,#0xff - 0x00
	jnc	00109$
00135$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$371$2$3 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:371: zerodisplay = 1;
;     genAssign
	mov	r4,#0x01
	C$V3K_FRAM_UART_Demo1_SDCC.c$372$2$3 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:372: number = number - (x*1000);
;     genCast
	mov	ar6,r5
	mov	r7,#0x00
;     genAssign
	mov	__mulint_PARM_2,#0xE8
	mov	(__mulint_PARM_2 + 1),#0x03
;     genCall
	mov	dpl,r6
	mov	dph,r7
	push	ar2
	push	ar3
	push	ar4
	lcall	__mulint
	mov	r6,dpl
	mov	r7,dph
	pop	ar4
	pop	ar3
	pop	ar2
;     genMinus
	mov	a,r2
	clr	c
;	Peephole 236.l	used r6 instead of ar6
	subb	a,r6
	mov	r2,a
	mov	a,r3
;	Peephole 236.l	used r7 instead of ar7
	subb	a,r7
	mov	r3,a
00109$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$375$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:375: x = (number/100);					//Define the number of hundreds
;     genAssign
	mov	__divuint_PARM_2,#0x64
	clr	a
	mov	(__divuint_PARM_2 + 1),a
;     genCall
	mov	dpl,r2
	mov	dph,r3
	push	ar2
	push	ar3
	push	ar4
	lcall	__divuint
	mov	r6,dpl
	mov	r7,dph
	pop	ar4
	pop	ar3
	pop	ar2
;     genCast
	mov	ar5,r6
	C$V3K_FRAM_UART_Demo1_SDCC.c$376$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:376: if( (zerodisplay !=0)|| (x !=0))
;     genCmpEq
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 199	optimized misc jump sequence
	cjne	r4,#0x00,00110$
;00136$:
;	Peephole 200	removed redundant sjmp
00137$:
;     genCmpEq
	cjne	r5,#0x00,00138$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00111$
00138$:
00110$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$377$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:377: txmit0((x+'0'));
;     genPlus
	mov	a,#0x30
;	Peephole 236.a	used r5 instead of ar5
	add	a,r5
	mov	dpl,a
;     genCall
	push	ar2
	push	ar3
	push	ar4
	push	ar5
	lcall	_txmit0
	pop	ar5
	pop	ar4
	pop	ar3
	pop	ar2
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00112$
00111$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$379$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:379: txmit0(' ');			//display a blank space instead
;     genCall
	mov	dpl,#0x20
	push	ar2
	push	ar3
	push	ar4
	push	ar5
	lcall	_txmit0
	pop	ar5
	pop	ar4
	pop	ar3
	pop	ar2
00112$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$381$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:381: if(x>0)
;     genCmpGt
;     genCmp
;     genIfxJump
;	Peephole 108	removed ljmp by inverse jump logic
;	Peephole 132.b	optimized genCmpGt by inverse logic (acc differs)
	mov	a,r5
	add	a,#0xff - 0x00
	jnc	00115$
00139$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$383$2$4 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:383: zerodisplay = 1;
;     genAssign
	mov	r4,#0x01
	C$V3K_FRAM_UART_Demo1_SDCC.c$384$2$4 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:384: number = number - (x*100);
;     genMult
;     genMultOneByte
	mov	a,r5
	mov	b,#0x64
	mul	ab
;     genMinus
	setb	c
;	Peephole 236.l	used r2 instead of ar2
	subb	a,r2
	cpl	a
	mov	r2,a
	mov	a,r3
	subb	a,b
	mov	r3,a
00115$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$387$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:387: x = (number / 10);				//Define the number of thens
;     genAssign
	mov	__divuint_PARM_2,#0x0A
	clr	a
	mov	(__divuint_PARM_2 + 1),a
;     genCall
	mov	dpl,r2
	mov	dph,r3
	push	ar2
	push	ar3
	push	ar4
	lcall	__divuint
	mov	r6,dpl
	mov	r7,dph
	pop	ar4
	pop	ar3
	pop	ar2
;     genCast
	mov	ar5,r6
	C$V3K_FRAM_UART_Demo1_SDCC.c$388$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:388: if( (zerodisplay !=0)|| (x !=0))
;     genCmpEq
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 199	optimized misc jump sequence
	cjne	r4,#0x00,00116$
;00140$:
;	Peephole 200	removed redundant sjmp
00141$:
;     genCmpEq
	cjne	r5,#0x00,00142$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00117$
00142$:
00116$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$389$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:389: txmit0((x+'0'));
;     genPlus
	mov	a,#0x30
;	Peephole 236.a	used r5 instead of ar5
	add	a,r5
	mov	dpl,a
;     genCall
	push	ar2
	push	ar3
	push	ar5
	lcall	_txmit0
	pop	ar5
	pop	ar3
	pop	ar2
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00118$
00117$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$391$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:391: txmit0(' ');			//display a blank space instead
;     genCall
	mov	dpl,#0x20
	push	ar2
	push	ar3
	push	ar5
	lcall	_txmit0
	pop	ar5
	pop	ar3
	pop	ar2
00118$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$393$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:393: if(x>0)
;     genCmpGt
;     genCmp
;     genIfxJump
;	Peephole 108	removed ljmp by inverse jump logic
;	Peephole 132.b	optimized genCmpGt by inverse logic (acc differs)
	mov	a,r5
	add	a,#0xff - 0x00
	jnc	00121$
00143$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$394$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:394: number = number - (x*10);
;     genMult
;     genMultOneByte
	mov	a,r5
	mov	b,#0x0A
	mul	ab
;     genMinus
	setb	c
;	Peephole 236.l	used r2 instead of ar2
	subb	a,r2
	cpl	a
	mov	r2,a
	mov	a,r3
	subb	a,b
	mov	r3,a
00121$:
	C$V3K_FRAM_UART_Demo1_SDCC.c$396$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:396: txmit0(number + '0');
;     genCast
;     genPlus
	mov	a,#0x30
;	Peephole 236.a	used r2 instead of ar2
	add	a,r2
	mov	dpl,a
;     genCall
	C$V3K_FRAM_UART_Demo1_SDCC.c$397$1$1 ==.
	XG$bin2bcdser0$0$0 ==.
;	Peephole 253.b	replaced lcall/ret with ljmp
	ljmp	_txmit0
;------------------------------------------------------------
;Allocation info for local variables in function 'Uart0HexSer4'
;------------------------------------------------------------
;value                     Allocated to registers r2 r3 
;valmsb                    Allocated to registers r2 
;vallsb                    Allocated to registers r4 
;hexchar                   Allocated to registers r3 
;------------------------------------------------------------
	G$Uart0HexSer4$0$0 ==.
	C$V3K_FRAM_UART_Demo1_SDCC.c$407$1$1 ==.
;C:/APP_ENG_Local/Demo_Programs/VRS51L3074/V3K_FRAM_UART_Demo1_SDCC/V3K_FRAM_UART_Demo1_SDCC.c:407: void Uart0HexSer4(int value)
;	-----------------------------------------
;	 function Uart0HexSer4
;	-----------------------------------------
_Uar

⌨️ 快捷键说明

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