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

📄 glib.txt

📁 s3c24a0固件测试代码 ? ? ? ? ?啊 
💻 TXT
📖 第 1 页 / 共 3 页
字号:
00070c  e1a00007          MOV      r0,r7
000710  e0871fa7          ADD      r1,r7,r7,LSR #31
000714  e04840c1          SUB      r4,r8,r1,ASR #1
;;;233    				while(y1>=y2)
000718  e1a00000          NOP      
                  |L1.1820|
00071c  e156000b          CMP      r6,r11
000720  ba000060          BLT      |L1.2216|
;;;234    				{
;;;235    					PutPixel(x1,y1,color);
000724  e1a02009          MOV      r2,r9
000728  e1a01006          MOV      r1,r6
00072c  e1a00005          MOV      r0,r5
000730  e59f318c          LDR      r3,|L1.2244|
000734  e5933000          LDR      r3,[r3,#0]  ; PutPixel
000738  e12fff33          BLX      r3
;;;236    					if(e>0){x1+=1;e-=dy;}	
00073c  e3540000          CMP      r4,#0
000740  da000001          BLE      |L1.1868|
000744  e2855001          ADD      r5,r5,#1
000748  e0444007          SUB      r4,r4,r7
;;;237    					y1-=1;
                  |L1.1868|
00074c  e2466001          SUB      r6,r6,#1
;;;238    					e+=dx;
000750  e0844008          ADD      r4,r4,r8
;;;239    				}
000754  eafffff0          B        |L1.1820|
;;;240    			}
;;;241    		}	
;;;242    	}
;;;243    	else //dx<0
;;;244    	{
;;;245    		dx=-dx;		//dx=abs(dx)
                  |L1.1880|
000758  e2688000          RSB      r8,r8,#0
;;;246    		if(dy >= 0) // dy>=0
00075c  e3570000          CMP      r7,#0
000760  ba000027          BLT      |L1.2052|
;;;247    		{
;;;248    			if(dx>=dy) // 4/8 octant
000764  e1580007          CMP      r8,r7
000768  ba000012          BLT      |L1.1976|
;;;249    			{
;;;250    				e=dy-dx/2;
00076c  e1a00008          MOV      r0,r8
000770  e0881fa8          ADD      r1,r8,r8,LSR #31
000774  e04740c1          SUB      r4,r7,r1,ASR #1
;;;251    				while(x1>=x2)
000778  e1a00000          NOP      
                  |L1.1916|
00077c  e155000a          CMP      r5,r10
000780  ba000048          BLT      |L1.2216|
;;;252    				{
;;;253    					PutPixel(x1,y1,color);
000784  e1a02009          MOV      r2,r9
000788  e1a01006          MOV      r1,r6
00078c  e1a00005          MOV      r0,r5
000790  e59f312c          LDR      r3,|L1.2244|
000794  e5933000          LDR      r3,[r3,#0]  ; PutPixel
000798  e12fff33          BLX      r3
;;;254    					if(e>0){y1+=1;e-=dx;}	
00079c  e3540000          CMP      r4,#0
0007a0  da000001          BLE      |L1.1964|
0007a4  e2866001          ADD      r6,r6,#1
0007a8  e0444008          SUB      r4,r4,r8
;;;255    					x1-=1;
                  |L1.1964|
0007ac  e2455001          SUB      r5,r5,#1
;;;256    					e+=dy;
0007b0  e0844007          ADD      r4,r4,r7
;;;257    				}
0007b4  eafffff0          B        |L1.1916|
;;;258    			}
;;;259    			else		// 3/8 octant
;;;260    			{
;;;261    				e=dx-dy/2;
                  |L1.1976|
0007b8  e1a00007          MOV      r0,r7
0007bc  e0871fa7          ADD      r1,r7,r7,LSR #31
0007c0  e04840c1          SUB      r4,r8,r1,ASR #1
;;;262    				while(y1<=y2)
0007c4  e1a00000          NOP      
                  |L1.1992|
0007c8  e156000b          CMP      r6,r11
0007cc  ca000035          BGT      |L1.2216|
;;;263    				{
;;;264    					PutPixel(x1,y1,color);
0007d0  e1a02009          MOV      r2,r9
0007d4  e1a01006          MOV      r1,r6
0007d8  e1a00005          MOV      r0,r5
0007dc  e59f30e0          LDR      r3,|L1.2244|
0007e0  e5933000          LDR      r3,[r3,#0]  ; PutPixel
0007e4  e12fff33          BLX      r3
;;;265    					if(e>0){x1-=1;e-=dy;}	
0007e8  e3540000          CMP      r4,#0
0007ec  da000001          BLE      |L1.2040|
0007f0  e2455001          SUB      r5,r5,#1
0007f4  e0444007          SUB      r4,r4,r7
;;;266    					y1+=1;
                  |L1.2040|
0007f8  e2866001          ADD      r6,r6,#1
;;;267    					e+=dx;
0007fc  e0844008          ADD      r4,r4,r8
;;;268    				}
000800  eafffff0          B        |L1.1992|
;;;269    			}
;;;270    		}
;;;271    		else		   // dy<0
;;;272    		{
;;;273    			dy=-dy;   // dy=abs(dy)
                  |L1.2052|
000804  e2677000          RSB      r7,r7,#0
;;;274    
;;;275    			if(dx>=dy) // 5/8 octant
000808  e1580007          CMP      r8,r7
00080c  ba000012          BLT      |L1.2140|
;;;276    			{
;;;277    				e=dy-dx/2;
000810  e1a00008          MOV      r0,r8
000814  e0881fa8          ADD      r1,r8,r8,LSR #31
000818  e04740c1          SUB      r4,r7,r1,ASR #1
;;;278    				while(x1>=x2)
00081c  e1a00000          NOP      
                  |L1.2080|
000820  e155000a          CMP      r5,r10
000824  ba00001f          BLT      |L1.2216|
;;;279    				{
;;;280    					PutPixel(x1,y1,color);
000828  e1a02009          MOV      r2,r9
00082c  e1a01006          MOV      r1,r6
000830  e1a00005          MOV      r0,r5
000834  e59f3088          LDR      r3,|L1.2244|
000838  e5933000          LDR      r3,[r3,#0]  ; PutPixel
00083c  e12fff33          BLX      r3
;;;281    					if(e>0){y1-=1;e-=dx;}	
000840  e3540000          CMP      r4,#0
000844  da000001          BLE      |L1.2128|
000848  e2466001          SUB      r6,r6,#1
00084c  e0444008          SUB      r4,r4,r8
;;;282    					x1-=1;
                  |L1.2128|
000850  e2455001          SUB      r5,r5,#1
;;;283    					e+=dy;
000854  e0844007          ADD      r4,r4,r7
;;;284    				}
000858  eafffff0          B        |L1.2080|
;;;285    			}
;;;286    			else		// 6/8 octant
;;;287    			{
;;;288    				e=dx-dy/2;
                  |L1.2140|
00085c  e1a00007          MOV      r0,r7
000860  e0871fa7          ADD      r1,r7,r7,LSR #31
000864  e04840c1          SUB      r4,r8,r1,ASR #1
;;;289    				while(y1>=y2)
000868  e1a00000          NOP      
                  |L1.2156|
00086c  e156000b          CMP      r6,r11
000870  ba00000c          BLT      |L1.2216|
;;;290    				{
;;;291    					PutPixel(x1,y1,color);
000874  e1a02009          MOV      r2,r9
000878  e1a01006          MOV      r1,r6
00087c  e1a00005          MOV      r0,r5
000880  e59f303c          LDR      r3,|L1.2244|
000884  e5933000          LDR      r3,[r3,#0]  ; PutPixel
000888  e12fff33          BLX      r3
;;;292    					if(e>0){x1-=1;e-=dy;}	
00088c  e3540000          CMP      r4,#0
000890  da000001          BLE      |L1.2204|
000894  e2455001          SUB      r5,r5,#1
000898  e0444007          SUB      r4,r4,r7
;;;293    					y1-=1;
                  |L1.2204|
00089c  e2466001          SUB      r6,r6,#1
;;;294    					e+=dx;
0008a0  e0844008          ADD      r4,r4,r8
;;;295    				}
0008a4  eafffff0          B        |L1.2156|
;;;296    			}
;;;297    		}	
;;;298    	}
;;;299    }
                  |L1.2216|
0008a8  e8bd8ff8          LDMFD    sp!,{r3-r11,pc}
                  |L1.2220|
0008ac  00000004          DCD      ||.bss$2|| + 4
                  |L1.2224|
0008b0  00000008          DCD      ||.bss$2|| + 8
                  |L1.2228|
0008b4  00fcfcfc          DCD      0x00fcfcfc
                  |L1.2232|
0008b8  0000000c          DCD      ||.bss$2|| + 12
                  |L1.2236|
0008bc  ffff0000          DCD      0xffff0000
                  |L1.2240|
0008c0  00000000          DCD      _PutPixel1Bit
                  |L1.2244|
0008c4  00000000          DCD      ||.bss$2||
                  |L1.2248|
0008c8  00000000          DCD      _PutPixel2Bit
                  |L1.2252|
0008cc  00000000          DCD      _PutPixel4Bit
                  |L1.2256|
0008d0  00000000          DCD      _PutPixel8Bit
                  |L1.2260|
0008d4  00000000          DCD      _PutPixel16Bit
                  |L1.2264|
0008d8  00000000          DCD      _PutPixel18Bit
                  |L1.2268|
0008dc  13200000          DCD      0x13200000
                  |L1.2272|
0008e0  13600000          DCD      0x13600000
                          ENDP

                  GlibRectangle PROC
;;;156    void GlibRectangle(int x1,int y1,int x2,int y2,int color)
;;;157    {
0008e4  e92d41fc          STMFD    sp!,{r2-r8,lr}
0008e8  e1a05000          MOV      r5,r0
0008ec  e1a06001          MOV      r6,r1
0008f0  e1a07002          MOV      r7,r2
0008f4  e1a08003          MOV      r8,r3
0008f8  e59d4020          LDR      r4,[sp,#0x20]
;;;158        GlibLine(x1,y1,x2,y1,color);
0008fc  e1a03006          MOV      r3,r6
000900  e1a02007          MOV      r2,r7
000904  e1a01006          MOV      r1,r6
000908  e1a00005          MOV      r0,r5
00090c  e58d4000          STR      r4,[sp,#0]
000910  ebfffffe          BL       GlibLine
;;;159        GlibLine(x2,y1,x2,y2,color);
000914  e1a03008          MOV      r3,r8
000918  e1a02007          MOV      r2,r7
00091c  e1a01006          MOV      r1,r6
000920  e1a00007          MOV      r0,r7
000924  e58d4000          STR      r4,[sp,#0]
000928  ebfffffe          BL       GlibLine
;;;160        GlibLine(x1,y2,x2,y2,color);
00092c  e1a03008          MOV      r3,r8
000930  e1a02007          MOV      r2,r7
000934  e1a01008          MOV      r1,r8
000938  e1a00005          MOV      r0,r5
00093c  e58d4000          STR      r4,[sp,#0]
000940  ebfffffe          BL       GlibLine
;;;161        GlibLine(x1,y1,x1,y2,color);
000944  e1a03008          MOV      r3,r8
000948  e1a02005          MOV      r2,r5
00094c  e1a01006          MOV      r1,r6
000950  e1a00005          MOV      r0,r5
000954  e58d4000          STR      r4,[sp,#0]
000958  ebfffffe          BL       GlibLine
;;;162    }
00095c  e8bd81fc          LDMFD    sp!,{r2-r8,pc}
                          ENDP

                  GlibFilledRectangle PROC
;;;165    void GlibFilledRectangle(int x1,int y1,int x2,int y2,int color)
;;;166    {
000960  e92d43f8          STMFD    sp!,{r3-r9,lr}
000964  e1a08000          MOV      r8,r0
000968  e1a06001          MOV      r6,r1
00096c  e1a09002          MOV      r9,r2
000970  e1a07003          MOV      r7,r3
000974  e59d5020          LDR      r5,[sp,#0x20]
;;;167        int i;
;;;168    
;;;169        for(i=y1;i<=y2;i++)
000978  e1a04006          MOV      r4,r6
                  |L1.2428|
00097c  e1540007          CMP      r4,r7
000980  ca000009          BGT      |L1.2476|
000984  ea000001          B        |L1.2448|
                  |L1.2440|
000988  e2844001          ADD      r4,r4,#1
00098c  eafffffa          B        |L1.2428|
;;;170    	GlibLine(x1,i,x2,i,color);
                  |L1.2448|
000990  e1a03004          MOV      r3,r4
000994  e1a02009          MOV      r2,r9
000998  e1a01004          MOV      r1,r4
00099c  e1a00008          MOV      r0,r8
0009a0  e58d5000          STR      r5,[sp,#0]
0009a4  ebfffffe          BL       GlibLine
0009a8  eafffff6          B        |L1.2440|
;;;171    }
                  |L1.2476|
0009ac  e8bd83f8          LDMFD    sp!,{r3-r9,pc}
                          ENDP

                  GlibClearScr PROC
;;;302    void GlibClearScr(U32 c)
;;;303    {	
0009b0  e92d4070          STMFD    sp!,{r4-r6,lr}
0009b4  e1a06000          MOV      r6,r0
;;;304    	int i,j;
;;;305    
;;;306    	for(j=0;j<vframeheight;j++)
0009b8  e3a05000          MOV      r5,#0
                  |L1.2492|
0009bc  e51f0114          LDR      r0,|L1.2224|
0009c0  e5900000          LDR      r0,[r0,#0]  ; vframeheight
0009c4  e1550000          CMP      r5,r0
0009c8  2a000012          BCS      |L1.2584|
0009cc  ea000001          B        |L1.2520|
                  |L1.2512|
0009d0  e2855001          ADD      r5,r5,#1
0009d4  eafffff8          B        |L1.2492|
;;;307    		for(i=0;i<vframewidth;i++)
                  |L1.2520|
0009d8  e3a04000          MOV      r4,#0
                  |L1.2524|
0009dc  e51f0138          LDR      r0,|L1.2220|
0009e0  e5900000          LDR      r0,[r0,#0]  ; vframewidth
0009e4  e1540000          CMP      r4,r0
0009e8  2a000009          BCS      |L1.2580|
0009ec  ea000001          B        |L1.2552|
                  |L1.2544|
0009f0  e2844001          ADD      r4,r4,#1
0009f4  eafffff8          B        |L1.2524|
;;;308    				PutPixel(i,j,c);      
                  |L1.2552|
0009f8  e1a02006          MOV      r2,r6
0009fc  e1a01005          MOV      r1,r5
000a00  e1a00004          MOV      r0,r4
000a04  e51f3148          LDR      r3,|L1.2244|
000a08  e5933000          LDR      r3,[r3,#0]  ; PutPixel
000a0c  e12fff33          BLX      r3
000a10  eafffff6          B        |L1.2544|
                  |L1.2580|
000a14  eaffffed          B        |L1.2512|
;;;309    }
                  |L1.2584|
000a18  e8bd8070          LDMFD    sp!,{r4-r6,pc}
                          ENDP



                          AREA ||.bss||, NOINIT, ALIGN=2

                  PutPixel
                  ||.bss$2||
                          % 4
                  vframewidth
                          % 4
                  vframeheight
                          % 4
                  framebuffer
                          % 4


        END

⌨️ 快捷键说明

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