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

📄 hello.lst

📁 8051 interrupt assemble code
💻 LST
📖 第 1 页 / 共 2 页
字号:
                            251 ;--------------------------------------------------------                            252 ; overlayable items in internal ram                             253 ;--------------------------------------------------------                            254 	.area	OSEG    (OVR,DATA)                            255 	.area	OSEG    (OVR,DATA)                            256 ;--------------------------------------------------------                            257 ; Stack segment in internal ram                             258 ;--------------------------------------------------------                            259 	.area	SSEG	(DATA)   0000                     260 __start__stack:   0000                     261 	.ds	1                            262                             263 ;--------------------------------------------------------                            264 ; indirectly addressable internal ram data                            265 ;--------------------------------------------------------                            266 	.area ISEG    (DATA)                            267 ;--------------------------------------------------------                            268 ; bit data                            269 ;--------------------------------------------------------                            270 	.area BSEG    (BIT)                            271 ;--------------------------------------------------------                            272 ; paged external ram data                            273 ;--------------------------------------------------------                            274 	.area PSEG    (PAG,XDATA)                            275 ;--------------------------------------------------------                            276 ; external ram data                            277 ;--------------------------------------------------------                            278 	.area XSEG    (XDATA)                            279 ;--------------------------------------------------------                            280 ; external initialized ram data                            281 ;--------------------------------------------------------                            282 	.area XISEG   (XDATA)                            283 	.area HOME    (CODE)                            284 	.area GSINIT0 (CODE)                            285 	.area GSINIT1 (CODE)                            286 	.area GSINIT2 (CODE)                            287 	.area GSINIT3 (CODE)                            288 	.area GSINIT4 (CODE)                            289 	.area GSINIT5 (CODE)                            290 	.area GSINIT  (CODE)                            291 	.area GSFINAL (CODE)                            292 	.area CSEG    (CODE)                            293 ;--------------------------------------------------------                            294 ; interrupt vector                             295 ;--------------------------------------------------------                            296 	.area HOME    (CODE)   0000                     297 __interrupt_vect:   0000 02s00r00            298 	ljmp	__sdcc_gsinit_startup                            299 ;--------------------------------------------------------                            300 ; global & static initialisations                            301 ;--------------------------------------------------------                            302 	.area HOME    (CODE)                            303 	.area GSINIT  (CODE)                            304 	.area GSFINAL (CODE)                            305 	.area GSINIT  (CODE)                            306 	.globl __sdcc_gsinit_startup                            307 	.globl __sdcc_program_startup                            308 	.globl __start__stack                            309 	.globl __mcs51_genXINIT                            310 	.globl __mcs51_genXRAMCLEAR                            311 	.globl __mcs51_genRAMCLEAR                            312 	.area GSFINAL (CODE)   0000 02s00r00            313 	ljmp	__sdcc_program_startup                            314 ;--------------------------------------------------------                            315 ; Home                            316 ;--------------------------------------------------------                            317 	.area HOME    (CODE)                            318 	.area CSEG    (CODE)   0000                     319 __sdcc_program_startup:   0000 12s00r33            320 	lcall	_main                            321 ;	return from main will lock up   0003 80 FE               322 	sjmp .                            323 ;--------------------------------------------------------                            324 ; code                            325 ;--------------------------------------------------------                            326 	.area CSEG    (CODE)                            327 ;------------------------------------------------------------                            328 ;Allocation info for local variables in function 'uart_init'                            329 ;------------------------------------------------------------                            330 ;------------------------------------------------------------                            331 ;	hello.c:5: void uart_init(void)                            332 ;	-----------------------------------------                            333 ;	 function uart_init                            334 ;	-----------------------------------------   0005                     335 _uart_init:                    0002    336 	ar2 = 0x02                    0003    337 	ar3 = 0x03                    0004    338 	ar4 = 0x04                    0005    339 	ar5 = 0x05                    0006    340 	ar6 = 0x06                    0007    341 	ar7 = 0x07                    0000    342 	ar0 = 0x00                    0001    343 	ar1 = 0x01                            344 ;	hello.c:7: SCON = 0x50;                            345 ;	genAssign   0005 75 98 50            346 	mov	_SCON,#0x50                            347 ;	hello.c:8: HIGH_NIBBLE_SET(TMOD, 2);                            348 ;	genAnd   0008 74 0F               349 	mov	a,#0x0F   000A 55 89               350 	anl	a,_TMOD                            351 ;	genOr   000C 44 20               352 	orl	a,#0x20   000E F5 89               353 	mov	_TMOD,a                            354 ;	hello.c:9: TH1 = 253;                            355 ;	genAssign   0010 75 8D FD            356 	mov	_TH1,#0xFD                            357 ;	hello.c:10: PCON |= 0x80;                            358 ;	genOr   0013 43 87 80            359 	orl	_PCON,#0x80                            360 ;	hello.c:11: ES = 0;                            361 ;	genAssign   0016 C2 AC               362 	clr	_ES                            363 ;	hello.c:12: TR1 = 1;                            364 ;	genAssign   0018 D2 8E               365 	setb	_TR1                            366 ;	Peephole 300	removed redundant label 00101$   001A 22                  367 	ret                            368 ;------------------------------------------------------------                            369 ;Allocation info for local variables in function 'putchar'                            370 ;------------------------------------------------------------                            371 ;c                         Allocated to registers r2                             372 ;------------------------------------------------------------                            373 ;	hello.c:15: void putchar(char c)                            374 ;	-----------------------------------------                            375 ;	 function putchar                            376 ;	-----------------------------------------   001B                     377 _putchar:                            378 ;	genReceive   001B AA 82               379 	mov	r2,dpl                            380 ;	hello.c:17: TI = 0;                            381 ;	genAssign   001D C2 99               382 	clr	_TI                            383 ;	hello.c:18: SBUF = c;                            384 ;	genAssign   001F 8A 99               385 	mov	_SBUF,r2                            386 ;	hello.c:19: while(!TI)   0021                     387 00101$:                            388 ;	genIfx                            389 ;	genIfxJump                            390 ;	Peephole 108.d	removed ljmp by inverse jump logic   0021 30 99 FD            391 	jnb	_TI,00101$                            392 ;	Peephole 300	removed redundant label 00107$                            393 ;	Peephole 300	removed redundant label 00104$   0024 22                  394 	ret                            395 ;------------------------------------------------------------                            396 ;Allocation info for local variables in function 'delay'                            397 ;------------------------------------------------------------                            398 ;i                         Allocated to registers r2 r3                             399 ;------------------------------------------------------------                            400 ;	hello.c:23: void delay(void)                            401 ;	-----------------------------------------                            402 ;	 function delay                            403 ;	-----------------------------------------   0025                     404 _delay:                            405 ;	hello.c:26: for(i=0;i<30000;i++)                            406 ;	genAssign   0025 7A 30               407 	mov	r2,#0x30   0027 7B 75               408 	mov	r3,#0x75   0029                     409 00103$:                            410 ;	genMinus                            411 ;	genMinusDec   0029 1A                  412 	dec	r2   002A BA FF 01            413 	cjne	r2,#0xff,00109$   002D 1B                  414 	dec	r3   002E                     415 00109$:                            416 ;	genIfx   002E EA                  417 	mov	a,r2   002F 4B                  418 	orl	a,r3                            419 ;	genIfxJump                            420 ;	Peephole 108.b	removed ljmp by inverse jump logic   0030 70 F7               421 	jnz	00103$                            422 ;	Peephole 300	removed redundant label 00110$                            423 ;	Peephole 300	removed redundant label 00104$   0032 22                  424 	ret                            425 ;------------------------------------------------------------                            426 ;Allocation info for local variables in function 'main'                            427 ;------------------------------------------------------------                            428 ;------------------------------------------------------------                            429 ;	hello.c:30: void main()                            430 ;	-----------------------------------------                            431 ;	 function main                            432 ;	-----------------------------------------   0033                     433 _main:                            434 ;	hello.c:32: IE = 0;                            435 ;	genAssign   0033 75 A8 00            436 	mov	_IE,#0x00                            437 ;	hello.c:33: P0 = P1 = 0xff;                            438 ;	genAssign   0036 75 90 FF            439 	mov	_P1,#0xFF                            440 ;	genAssign   0039 75 80 FF            441 	mov	_P0,#0xFF                            442 ;	hello.c:34: uart_init();                            443 ;	genCall   003C 12s00r05            444 	lcall	_uart_init                            445 ;	hello.c:35: while(1) {   003F                     446 00102$:                            447 ;	hello.c:36: printf("hello world p2 = %d p3 = %d\r\n",P2,P3);                            448 ;	genCast   003F AA B0               449 	mov	r2,_P3   0041 7B 00               450 	mov	r3,#0x00                            451 ;	genCast   0043 AC A0               452 	mov	r4,_P2   0045 7D 00               453 	mov	r5,#0x00                            454 ;	genIpush   0047 C0 02               455 	push	ar2   0049 C0 03               456 	push	ar3                            457 ;	genIpush   004B C0 04               458 	push	ar4   004D C0 05               459 	push	ar5                            460 ;	genIpush   004F 74r00               461 	mov	a,#__str_0   0051 C0 E0               462 	push	acc   0053 74s00               463 	mov	a,#(__str_0 >> 8)   0055 C0 E0               464 	push	acc   0057 74 80               465 	mov	a,#0x80   0059 C0 E0               466 	push	acc                            467 ;	genCall   005B 12s00r00            468 	lcall	_printf   005E E5 81               469 	mov	a,sp   0060 24 F9               470 	add	a,#0xf9   0062 F5 81               471 	mov	sp,a                            472 ;	hello.c:37: P1 = P2;                            473 ;	genAssign   0064 85 A0 90            474 	mov	_P1,_P2                            475 ;	hello.c:38: P1_0 ^= 1;                            476 ;	genXor   0067 B2 90               477 	cpl	_P1_0                            478 ;	hello.c:39: P0_0 ^= 1;                            479 ;	genXor   0069 B2 80               480 	cpl	_P0_0                            481 ;	hello.c:40: delay();                            482 ;	genCall   006B 12s00r25            483 	lcall	_delay                            484 ;	Peephole 112.b	changed ljmp to sjmp   006E 80 CF               485 	sjmp	00102$                            486 ;	Peephole 259.a	removed redundant label 00104$ and ret                            487 ;                            488 	.area CSEG    (CODE)                            489 	.area CONST   (CODE)   0000                     490 __str_0:   0000 68 65 6C 6C 6F 20   491 	.ascii "hello world p2 = %d p3 = %d"        77 6F 72 6C 64 20        70 32 20 3D 20 25        64 20 70 33 20 3D        20 25 64   001B 0D                  492 	.db 0x0D   001C 0A                  493 	.db 0x0A   001D 00                  494 	.db 0x00                            495 	.area XINIT   (CODE)

⌨️ 快捷键说明

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