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

📄 v3k_framlcd_demo_sdcc.asm

📁 这是ramtron公司的铁电单片机的开发程序
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	C$V2K_CHAR_LCD_P0_SDCC.h$231$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:231: LCDPORT = 0x00;						//   ;D7 D6 D5 D4 E R/W RS NC
;     genAssign
	mov	_P0,#0x00
	C$V2K_CHAR_LCD_P0_SDCC.h$234$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:234: LCDSlow();							//Slow down comm with LCD
;     genCall
	lcall	_LCDSlow
	C$V2K_CHAR_LCD_P0_SDCC.h$235$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:235: LCD_E = 1;							//Send E Pulse
;     genAssign
	setb	_LCD_E
	C$V2K_CHAR_LCD_P0_SDCC.h$236$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:236: LCDSlow();							//Slow down comm with LCD
;     genCall
	lcall	_LCDSlow
	C$V2K_CHAR_LCD_P0_SDCC.h$237$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:237: LCD_E = 0;
;     genAssign
	clr	_LCD_E
	C$V2K_CHAR_LCD_P0_SDCC.h$239$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:239: LCDSlow();							//Slow down comm with LCD
;     genCall
	lcall	_LCDSlow
	C$V2K_CHAR_LCD_P0_SDCC.h$240$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:240: LCDPORT = 0x60;						// DISPLAY OFF
;     genAssign
	mov	_P0,#0x60
	C$V2K_CHAR_LCD_P0_SDCC.h$245$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:245: LCDSlow();							//Slow down comm with LCD
;     genCall
	lcall	_LCDSlow
	C$V2K_CHAR_LCD_P0_SDCC.h$246$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:246: LCD_E = 1;							//Send E Pulse
;     genAssign
	setb	_LCD_E
	C$V2K_CHAR_LCD_P0_SDCC.h$247$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:247: LCDSlow();							//Slow down comm with LCD
;     genCall
	lcall	_LCDSlow
	C$V2K_CHAR_LCD_P0_SDCC.h$248$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:248: LCD_E = 0;
;     genAssign
	clr	_LCD_E
	C$V2K_CHAR_LCD_P0_SDCC.h$249$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:249: lcdbusy();
;     genCall
	lcall	_lcdbusy
	C$V2K_CHAR_LCD_P0_SDCC.h$253$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:253: LCDPORT = 0x00;						//   ;D7 D6 D5 D4 E R/W RS NC
;     genAssign
	mov	_P0,#0x00
	C$V2K_CHAR_LCD_P0_SDCC.h$257$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:257: LCDSlow();							//Slow down comm with LCD
;     genCall
	lcall	_LCDSlow
	C$V2K_CHAR_LCD_P0_SDCC.h$258$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:258: LCD_E = 1;							//Send E Pulse
;     genAssign
	setb	_LCD_E
	C$V2K_CHAR_LCD_P0_SDCC.h$259$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:259: LCDSlow();							//Slow down comm with LCD
;     genCall
	lcall	_LCDSlow
	C$V2K_CHAR_LCD_P0_SDCC.h$260$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:260: LCD_E = 0;
;     genAssign
	clr	_LCD_E
	C$V2K_CHAR_LCD_P0_SDCC.h$262$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:262: LCDPORT = 0xC0;						//DISPLAY ON, CURSOR OFF, BLINK OFF
;     genAssign
	mov	_P0,#0xC0
	C$V2K_CHAR_LCD_P0_SDCC.h$266$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:266: LCDSlow();							//Slow down comm with LCD
;     genCall
	lcall	_LCDSlow
	C$V2K_CHAR_LCD_P0_SDCC.h$267$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:267: LCD_E = 1;							//Send E Pulse
;     genAssign
	setb	_LCD_E
	C$V2K_CHAR_LCD_P0_SDCC.h$268$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:268: LCDSlow();							//Slow down comm with LCD
;     genCall
	lcall	_LCDSlow
	C$V2K_CHAR_LCD_P0_SDCC.h$269$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:269: LCD_E = 0;
;     genAssign
	clr	_LCD_E
	C$V2K_CHAR_LCD_P0_SDCC.h$270$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:270: lcdbusy();
;     genCall
	lcall	_lcdbusy
	C$V2K_CHAR_LCD_P0_SDCC.h$271$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:271: sendlcdcmd(LCD_L1C1);					//Place LCD cursor on Line 1, Column 1
;     genAssign
	mov	dptr,#_LCD_L1C1
	clr	a
	movc	a,@a+dptr
;     genCall
;	Peephole 244.c	loading dpl from a instead of r2
	mov	r2,a
	mov	dpl,a
	C$V2K_CHAR_LCD_P0_SDCC.h$272$1$1 ==.
	XG$initlcd$0$0 ==.
;	Peephole 253.b	replaced lcall/ret with ljmp
	ljmp	_sendlcdcmd
;------------------------------------------------------------
;Allocation info for local variables in function 'int2lcd'
;------------------------------------------------------------
;number                    Allocated with name '_int2lcd_number_1_1'
;x                         Allocated to registers r6 r7 
;zerodisplay               Allocated to registers r4 r5 
;------------------------------------------------------------
	G$int2lcd$0$0 ==.
	C$V2K_CHAR_LCD_P0_SDCC.h$293$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:293: void int2lcd(unsigned int number){
;	-----------------------------------------
;	 function int2lcd
;	-----------------------------------------
_int2lcd:
;     genReceive
	mov	_int2lcd_number_1_1,dpl
	mov	(_int2lcd_number_1_1 + 1),dph
	C$V2K_CHAR_LCD_P0_SDCC.h$297$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:297: idata unsigned int zerodisplay = 0;			//intialise startdisplay to 0 -> do not display if number is zero
;     genAssign
	mov	r4,#0x00
	mov	r5,#0x00
	C$V2K_CHAR_LCD_P0_SDCC.h$299$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:299: 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,_int2lcd_number_1_1
	mov	dph,(_int2lcd_number_1_1 + 1)
	push	ar4
	push	ar5
	lcall	__divuint
	mov	r6,dpl
	mov	r7,dph
	pop	ar5
	pop	ar4
	C$V2K_CHAR_LCD_P0_SDCC.h$300$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:300: if(x>0)								// If number > 0 display it
;     genIfx
	mov	a,r6
	orl	a,r7
;     genIfxJump
;	Peephole 110	removed ljmp by inverse jump logic
	jz	00102$
00131$:
	C$V2K_CHAR_LCD_P0_SDCC.h$302$2$2 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:302: zerodisplay = 1;					// number > 0 -> when zero is next encountered, display it
;     genAssign
	mov	r4,#0x01
	mov	r5,#0x00
	C$V2K_CHAR_LCD_P0_SDCC.h$303$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:303: number = number - (x*10000);
;     genAssign
	mov	__mulint_PARM_2,#0x10
	mov	(__mulint_PARM_2 + 1),#0x27
;     genCall
	mov	dpl,r6
	mov	dph,r7
	push	ar4
	push	ar5
	push	ar6
	push	ar7
	lcall	__mulint
	mov	r2,dpl
	mov	r3,dph
	pop	ar7
	pop	ar6
	pop	ar5
	pop	ar4
;     genMinus
	mov	a,_int2lcd_number_1_1
	clr	c
;	Peephole 236.l	used r2 instead of ar2
	subb	a,r2
	mov	_int2lcd_number_1_1,a
	mov	a,(_int2lcd_number_1_1 + 1)
;	Peephole 236.l	used r3 instead of ar3
	subb	a,r3
	mov	(_int2lcd_number_1_1 + 1),a
	C$V2K_CHAR_LCD_P0_SDCC.h$305$2$2 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:305: sendlcdchar((x+'0'));
;     genCast
	mov	ar2,r6
;     genPlus
	mov	a,#0x30
;	Peephole 236.a	used r2 instead of ar2
	add	a,r2
	mov	dpl,a
;     genCall
	push	ar4
	push	ar5
	lcall	_sendlcdchar
	pop	ar5
	pop	ar4
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00103$
00102$:
	C$V2K_CHAR_LCD_P0_SDCC.h$308$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:308: sendlcdchar(' ');				//display a blank space instead
;     genCall
	mov	dpl,#0x20
	push	ar4
	push	ar5
	lcall	_sendlcdchar
	pop	ar5
	pop	ar4
00103$:
	C$V2K_CHAR_LCD_P0_SDCC.h$310$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:310: x = (number/1000);						//Define the number of thousands
;     genAssign
	mov	__divuint_PARM_2,#0xE8
	mov	(__divuint_PARM_2 + 1),#0x03
;     genCall
	mov	dpl,_int2lcd_number_1_1
	mov	dph,(_int2lcd_number_1_1 + 1)
	push	ar4
	push	ar5
	lcall	__divuint
	mov	r6,dpl
	mov	r7,dph
	pop	ar5
	pop	ar4
	C$V2K_CHAR_LCD_P0_SDCC.h$312$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:312: if( (zerodisplay !=0)|| (x !=0))
;     genCmpEq
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 198	optimized misc jump sequence
	cjne	r4,#0x00,00104$
	cjne	r5,#0x00,00104$
;00132$:
;	Peephole 200	removed redundant sjmp
00133$:
;     genCmpEq
	cjne	r6,#0x00,00134$
	cjne	r7,#0x00,00134$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00105$
00134$:
00104$:
	C$V2K_CHAR_LCD_P0_SDCC.h$313$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:313: sendlcdchar((x+'0'));
;     genCast
	mov	ar2,r6
;     genPlus
	mov	a,#0x30
;	Peephole 236.a	used r2 instead of ar2
	add	a,r2
	mov	dpl,a
;     genCall
	push	ar4
	push	ar5
	push	ar6
	push	ar7
	lcall	_sendlcdchar
	pop	ar7
	pop	ar6
	pop	ar5
	pop	ar4
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00106$
00105$:
	C$V2K_CHAR_LCD_P0_SDCC.h$315$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:315: sendlcdchar(' ');				//display a blank space instead
;     genCall
	mov	dpl,#0x20
	push	ar4
	push	ar5
	push	ar6
	push	ar7
	lcall	_sendlcdchar
	pop	ar7
	pop	ar6
	pop	ar5
	pop	ar4
00106$:
	C$V2K_CHAR_LCD_P0_SDCC.h$317$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:317: if(x>0)
;     genIfx
	mov	a,r6
	orl	a,r7
;     genIfxJump
;	Peephole 110	removed ljmp by inverse jump logic
	jz	00109$
00135$:
	C$V2K_CHAR_LCD_P0_SDCC.h$319$2$3 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:319: zerodisplay = 1;
;     genAssign
	mov	r4,#0x01
	mov	r5,#0x00
	C$V2K_CHAR_LCD_P0_SDCC.h$320$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:320: number = number - (x*1000);
;     genAssign
	mov	__mulint_PARM_2,#0xE8
	mov	(__mulint_PARM_2 + 1),#0x03
;     genCall
	mov	dpl,r6
	mov	dph,r7
	push	ar4
	push	ar5
	lcall	__mulint
	mov	r2,dpl
	mov	r3,dph
	pop	ar5
	pop	ar4
;     genMinus
	mov	a,_int2lcd_number_1_1
	clr	c
;	Peephole 236.l	used r2 instead of ar2
	subb	a,r2
	mov	_int2lcd_number_1_1,a
	mov	a,(_int2lcd_number_1_1 + 1)
;	Peephole 236.l	used r3 instead of ar3
	subb	a,r3
	mov	(_int2lcd_number_1_1 + 1),a
00109$:
	C$V2K_CHAR_LCD_P0_SDCC.h$323$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:323: 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,_int2lcd_number_1_1
	mov	dph,(_int2lcd_number_1_1 + 1)
	push	ar4
	push	ar5
	lcall	__divuint
	mov	r6,dpl
	mov	r7,dph
	pop	ar5
	pop	ar4
	C$V2K_CHAR_LCD_P0_SDCC.h$324$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:324: if( (zerodisplay !=0)|| (x !=0))
;     genCmpEq
;	Peephole 112.b	changed ljmp to sjmp
;	Peephole 198	optimized misc jump sequence
	cjne	r4,#0x00,00110$
	cjne	r5,#0x00,00110$
;00136$:
;	Peephole 200	removed redundant sjmp
00137$:
;     genCmpEq
	cjne	r6,#0x00,00138$
	cjne	r7,#0x00,00138$
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00111$
00138$:
00110$:
	C$V2K_CHAR_LCD_P0_SDCC.h$325$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:325: sendlcdchar((x+'0'));
;     genCast
	mov	ar2,r6
;     genPlus
	mov	a,#0x30
;	Peephole 236.a	used r2 instead of ar2
	add	a,r2
	mov	dpl,a
;     genCall
	push	ar4
	push	ar5
	push	ar6
	push	ar7
	lcall	_sendlcdchar
	pop	ar7
	pop	ar6
	pop	ar5
	pop	ar4
;	Peephole 112.b	changed ljmp to sjmp
	sjmp	00112$
00111$:
	C$V2K_CHAR_LCD_P0_SDCC.h$327$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:327: sendlcdchar(' ');				//display a blank space instead
;     genCall
	mov	dpl,#0x20
	push	ar4
	push	ar5
	push	ar6
	push	ar7
	lcall	_sendlcdchar
	pop	ar7
	pop	ar6
	pop	ar5
	pop	ar4
00112$:
	C$V2K_CHAR_LCD_P0_SDCC.h$330$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:330: if(x>0)
;     genIfx
	mov	a,r6
	orl	a,r7
;     genIfxJump
;	Peephole 110	removed ljmp by inverse jump logic
	jz	00115$
00139$:
	C$V2K_CHAR_LCD_P0_SDCC.h$332$2$4 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:332: zerodisplay = 1;
;     genAssign
	mov	r4,#0x01
	mov	r5,#0x00
	C$V2K_CHAR_LCD_P0_SDCC.h$333$1$1 ==.
;C:/Program Files/SDCC/include/V2K_CHAR_LCD_P0_SDCC.h:333: number = number - (x*100);
;     genAssign
	mov	__mulint_PARM_2,#0x64
	clr	a
	mov	(__mulint_PARM_2 + 1),a
;     genCall
	mov	dpl,r6

⌨️ 快捷键说明

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