📄 v3k_framlcd_demo_sdcc.asm
字号:
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 + -