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

📄 file1.rst

📁 单片机学习系统附的实验源代码
💻 RST
📖 第 1 页 / 共 2 页
字号:
                            226 ; code
                            227 ;--------------------------------------------------------
                            228 	.area CSEG    (CODE)
   002C                     229 __sdcc_program_startup:
   002C 12 00 31            230 	lcall	_main
                            231 ;	return from main will lock up
   002F 80 FE               232 	sjmp .
                            233 ;------------------------------------------------------------
                            234 ;Allocation info for local variables in function 'main'
                            235 ;------------------------------------------------------------
                            236 ;k                         Allocated to registers 
                            237 ;m                         Allocated to registers r2 r3 
                            238 ;------------------------------------------------------------
                            239 ;C:/hj51avr/code/c/file1.c:9: void main()
                            240 ;	-----------------------------------------
                            241 ;	 function main
                            242 ;	-----------------------------------------
   0031                     243 _main:
                    0002    244 	ar2 = 0x02
                    0003    245 	ar3 = 0x03
                    0004    246 	ar4 = 0x04
                    0005    247 	ar5 = 0x05
                    0006    248 	ar6 = 0x06
                    0007    249 	ar7 = 0x07
                    0000    250 	ar0 = 0x00
                    0001    251 	ar1 = 0x01
                            252 ;C:/hj51avr/code/c/file1.c:12: P0 = 0;            //关闭数码显示
                            253 ;     genAssign
   0031 75 80 00            254 	mov	_P0,#0x00
                            255 ;C:/hj51avr/code/c/file1.c:13: P2 = 0;            //
                            256 ;     genAssign
   0034 75 A0 00            257 	mov	_P2,#0x00
                            258 ;C:/hj51avr/code/c/file1.c:14: P3_7 = 0;          //关闭蜂鸣器
                            259 ;     genAssign
   0037 C2 B7               260 	clr	_P3_7
                            261 ;C:/hj51avr/code/c/file1.c:16: while(1)             //设置一个无限制循环
   0039                     262 00102$:
                            263 ;C:/hj51avr/code/c/file1.c:17: {   m = 254;
                            264 ;     genAssign
   0039 7A FE               265 	mov	r2,#0xFE
   003B 7B 00               266 	mov	r3,#0x00
                            267 ;C:/hj51avr/code/c/file1.c:18: P1 = m;          //从第一个灯开始显示
                            268 ;     genAssign
   003D 75 90 FE            269 	mov	_P1,#0xFE
                            270 ;C:/hj51avr/code/c/file1.c:19: for(k=0;k<8;k++)
                            271 ;     genAssign
   0040 7C 00               272 	mov	r4,#0x00
   0042 7D 00               273 	mov	r5,#0x00
   0044                     274 00104$:
                            275 ;     genCmpLt
                            276 ;     genCmp
   0044 C3                  277 	clr	c
   0045 EC                  278 	mov	a,r4
   0046 94 08               279 	subb	a,#0x08
   0048 ED                  280 	mov	a,r5
   0049 64 80               281 	xrl	a,#0x80
   004B 94 80               282 	subb	a,#0x80
                            283 ;     genIfxJump
                            284 ;       Peephole 108    removed ljmp by inverse jump logic
   004D 50 26               285 	jnc     00107$
   004F                     286 00119$:
                            287 ;C:/hj51avr/code/c/file1.c:20: {delay(255);
                            288 ;     genCall
   004F 75 82 FF            289 	mov	dpl,#0xFF
   0052 C0 02               290 	push	ar2
   0054 C0 03               291 	push	ar3
   0056 C0 04               292 	push	ar4
   0058 C0 05               293 	push	ar5
   005A 12 00 B0            294 	lcall	_delay
   005D D0 05               295 	pop	ar5
   005F D0 04               296 	pop	ar4
   0061 D0 03               297 	pop	ar3
   0063 D0 02               298 	pop	ar2
                            299 ;C:/hj51avr/code/c/file1.c:21: m <<=1;
                            300 ;     genLeftShift
                            301 ;     genLeftShiftLiteral
                            302 ;     genlshTwo
   0065 EB                  303 	mov	a,r3
   0066 CA                  304 	xch	a,r2
   0067 25 E0               305 	add	a,acc
   0069 CA                  306 	xch	a,r2
   006A 33                  307 	rlc	a
   006B FB                  308 	mov	r3,a
                            309 ;C:/hj51avr/code/c/file1.c:22: P1  = m;        //表示,P1每次向左一位
                            310 ;     genCast
   006C 8A 90               311 	mov	_P1,r2
                            312 ;C:/hj51avr/code/c/file1.c:19: for(k=0;k<8;k++)
                            313 ;     genPlus
                            314 ;     genPlusIncr
                            315 ;	tail increment optimized
   006E 0C                  316 	inc	r4
   006F BC 00 D2            317 	cjne	r4,#0x00,00104$
   0072 0D                  318 	inc	r5
                            319 ;       Peephole 112.b  changed ljmp to sjmp
   0073 80 CF               320 	sjmp    00104$
   0075                     321 00107$:
                            322 ;C:/hj51avr/code/c/file1.c:24: m = 128;
                            323 ;     genAssign
   0075 7A 80               324 	mov	r2,#0x80
   0077 7B 00               325 	mov	r3,#0x00
                            326 ;C:/hj51avr/code/c/file1.c:25: for(k=0;k<8;k++)   //第二次重复
                            327 ;     genAssign
   0079 7C 00               328 	mov	r4,#0x00
   007B 7D 00               329 	mov	r5,#0x00
   007D                     330 00108$:
                            331 ;     genCmpLt
                            332 ;     genCmp
   007D C3                  333 	clr	c
   007E EC                  334 	mov	a,r4
   007F 94 08               335 	subb	a,#0x08
   0081 ED                  336 	mov	a,r5
   0082 64 80               337 	xrl	a,#0x80
   0084 94 80               338 	subb	a,#0x80
                            339 ;     genIfxJump
                            340 ;       Peephole 108    removed ljmp by inverse jump logic
   0086 50 B1               341 	jnc     00102$
   0088                     342 00120$:
                            343 ;C:/hj51avr/code/c/file1.c:26: {delay(255);
                            344 ;     genCall
   0088 75 82 FF            345 	mov	dpl,#0xFF
   008B C0 02               346 	push	ar2
   008D C0 03               347 	push	ar3
   008F C0 04               348 	push	ar4
   0091 C0 05               349 	push	ar5
   0093 12 00 B0            350 	lcall	_delay
   0096 D0 05               351 	pop	ar5
   0098 D0 04               352 	pop	ar4
   009A D0 03               353 	pop	ar3
   009C D0 02               354 	pop	ar2
                            355 ;C:/hj51avr/code/c/file1.c:27: m >>= 1;
                            356 ;     genRightShift
                            357 ;     genSignedRightShift
                            358 ;     genRightShiftLiteral
                            359 ;     genrshTwo
   009E EB                  360 	mov	a,r3
   009F A2 E7               361 	mov	c,acc.7
   00A1 13                  362 	rrc	a
   00A2 CA                  363 	xch	a,r2
   00A3 13                  364 	rrc	a
   00A4 CA                  365 	xch	a,r2
   00A5 FB                  366 	mov	r3,a
                            367 ;C:/hj51avr/code/c/file1.c:28: P1 = m;        //表示,P1每次向右一位
                            368 ;     genCast
   00A6 8A 90               369 	mov	_P1,r2
                            370 ;C:/hj51avr/code/c/file1.c:25: for(k=0;k<8;k++)   //第二次重复
                            371 ;     genPlus
                            372 ;     genPlusIncr
                            373 ;	tail increment optimized
   00A8 0C                  374 	inc	r4
   00A9 BC 00 D1            375 	cjne	r4,#0x00,00108$
   00AC 0D                  376 	inc	r5
                            377 ;       Peephole 112.b  changed ljmp to sjmp
   00AD 80 CE               378 	sjmp    00108$
   00AF                     379 00112$:
   00AF 22                  380 	ret
                            381 ;------------------------------------------------------------
                            382 ;Allocation info for local variables in function 'delay'
                            383 ;------------------------------------------------------------
                            384 ;times                     Allocated to registers r2 
                            385 ;t                         Allocated to registers r3 r4 
                            386 ;i                         Allocated to registers 
                            387 ;------------------------------------------------------------
                            388 ;C:/hj51avr/code/c/file1.c:35: void delay(unsigned char times)
                            389 ;	-----------------------------------------
                            390 ;	 function delay
                            391 ;	-----------------------------------------
   00B0                     392 _delay:
                            393 ;     genReceive
   00B0 AA 82               394 	mov	r2,dpl
                            395 ;C:/hj51avr/code/c/file1.c:37: int t=12000;           //延时倍数
                            396 ;     genAssign
   00B2 7B E0               397 	mov	r3,#0xE0
   00B4 7C 2E               398 	mov	r4,#0x2E
                            399 ;C:/hj51avr/code/c/file1.c:38: unsigned char i=times;   
                            400 ;     genAssign
   00B6                     401 00105$:
                            402 ;C:/hj51avr/code/c/file1.c:39: for(;i!=0;i--)
                            403 ;     genCmpEq
   00B6 BA 00 02            404 	cjne	r2,#0x00,00114$
                            405 ;       Peephole 112.b  changed ljmp to sjmp
   00B9 80 1E               406 	sjmp    00109$
   00BB                     407 00114$:
                            408 ;     genAssign
   00BB 8B 05               409 	mov	ar5,r3
   00BD 8C 06               410 	mov	ar6,r4
   00BF                     411 00101$:
                            412 ;C:/hj51avr/code/c/file1.c:40: {for(;t!=0;t--){}}
                            413 ;     genCmpEq
                            414 ;       Peephole 241.b  optimized compare
   00BF E4                  415 	clr     a
   00C0 BD 00 04            416 	cjne    r5,#0x00,00115$
   00C3 BE 00 01            417 	cjne    r6,#0x00,00115$
   00C6 04                  418 	inc     a
   00C7                     419 00115$:
   00C7                     420 00116$:
   00C7 FF                  421 	mov	r7,a
                            422 ;     genAssign
   00C8 8D 03               423 	mov	ar3,r5
   00CA 8E 04               424 	mov	ar4,r6
                            425 ;     genIfx
   00CC EF                  426 	mov	a,r7
                            427 ;     genIfxJump
                            428 ;       Peephole 109    removed ljmp by inverse jump logic
   00CD 70 07               429 	jnz     00107$
   00CF                     430 00117$:
                            431 ;     genMinus
                            432 ;     genMinusDec
                            433 ;	tail decrement optimized
   00CF 1D                  434 	dec	r5
   00D0 BD FF EC            435 	cjne	r5,#0xff,00101$
   00D3 1E                  436 	dec	r6
                            437 ;       Peephole 112.b  changed ljmp to sjmp
   00D4 80 E9               438 	sjmp    00101$
   00D6                     439 00107$:
                            440 ;C:/hj51avr/code/c/file1.c:39: for(;i!=0;i--)
                            441 ;     genMinus
                            442 ;     genMinusDec
   00D6 1A                  443 	dec	r2
                            444 ;       Peephole 112.b  changed ljmp to sjmp
   00D7 80 DD               445 	sjmp    00105$
   00D9                     446 00109$:
   00D9 22                  447 	ret
                            448 	.area CSEG    (CODE)
                            449 	.area XINIT   (CODE)

⌨️ 快捷键说明

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