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

📄 hello.rst

📁 8051 interrupt assemble code
💻 RST
📖 第 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)   0040                     260 __start__stack:   0040                     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 02 00 03            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)   005C 02 00 5F            313 	ljmp	__sdcc_program_startup                            314 ;--------------------------------------------------------                            315 ; Home                            316 ;--------------------------------------------------------                            317 	.area HOME    (CODE)                            318 	.area CSEG    (CODE)   005F                     319 __sdcc_program_startup:   005F 12 00 92            320 	lcall	_main                            321 ;	return from main will lock up   0062 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 ;	-----------------------------------------   0064                     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   0064 75 98 50            346 	mov	_SCON,#0x50                            347 ;	hello.c:8: HIGH_NIBBLE_SET(TMOD, 2);                            348 ;	genAnd   0067 74 0F               349 	mov	a,#0x0F   0069 55 89               350 	anl	a,_TMOD                            351 ;	genOr   006B 44 20               352 	orl	a,#0x20   006D F5 89               353 	mov	_TMOD,a                            354 ;	hello.c:9: TH1 = 253;                            355 ;	genAssign   006F 75 8D FD            356 	mov	_TH1,#0xFD                            357 ;	hello.c:10: PCON |= 0x80;                            358 ;	genOr   0072 43 87 80            359 	orl	_PCON,#0x80                            360 ;	hello.c:11: ES = 0;                            361 ;	genAssign   0075 C2 AC               362 	clr	_ES                            363 ;	hello.c:12: TR1 = 1;                            364 ;	genAssign   0077 D2 8E               365 	setb	_TR1                            366 ;	Peephole 300	removed redundant label 00101$   0079 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 ;	-----------------------------------------   007A                     377 _putchar:                            378 ;	genReceive   007A AA 82               379 	mov	r2,dpl                            380 ;	hello.c:17: TI = 0;                            381 ;	genAssign   007C C2 99               382 	clr	_TI                            383 ;	hello.c:18: SBUF = c;                            384 ;	genAssign   007E 8A 99               385 	mov	_SBUF,r2                            386 ;	hello.c:19: while(!TI)   0080                     387 00101$:                            388 ;	genIfx                            389 ;	genIfxJump                            390 ;	Peephole 108.d	removed ljmp by inverse jump logic   0080 30 99 FD            391 	jnb	_TI,00101$                            392 ;	Peephole 300	removed redundant label 00107$                            393 ;	Peephole 300	removed redundant label 00104$   0083 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 ;	-----------------------------------------   0084                     404 _delay:                            405 ;	hello.c:26: for(i=0;i<30000;i++)                            406 ;	genAssign   0084 7A 30               407 	mov	r2,#0x30   0086 7B 75               408 	mov	r3,#0x75   0088                     409 00103$:                            410 ;	genMinus                            411 ;	genMinusDec   0088 1A                  412 	dec	r2   0089 BA FF 01            413 	cjne	r2,#0xff,00109$   008C 1B                  414 	dec	r3   008D                     415 00109$:                            416 ;	genIfx   008D EA                  417 	mov	a,r2   008E 4B                  418 	orl	a,r3                            419 ;	genIfxJump                            420 ;	Peephole 108.b	removed ljmp by inverse jump logic   008F 70 F7               421 	jnz	00103$                            422 ;	Peephole 300	removed redundant label 00110$                            423 ;	Peephole 300	removed redundant label 00104$   0091 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 ;	-----------------------------------------   0092                     433 _main:                            434 ;	hello.c:32: IE = 0;                            435 ;	genAssign   0092 75 A8 00            436 	mov	_IE,#0x00                            437 ;	hello.c:33: P0 = P1 = 0xff;                            438 ;	genAssign   0095 75 90 FF            439 	mov	_P1,#0xFF                            440 ;	genAssign   0098 75 80 FF            441 	mov	_P0,#0xFF                            442 ;	hello.c:34: uart_init();                            443 ;	genCall   009B 12 00 64            444 	lcall	_uart_init                            445 ;	hello.c:35: while(1) {   009E                     446 00102$:                            447 ;	hello.c:36: printf("hello world p2 = %d p3 = %d\r\n",P2,P3);                            448 ;	genCast   009E AA B0               449 	mov	r2,_P3   00A0 7B 00               450 	mov	r3,#0x00                            451 ;	genCast   00A2 AC A0               452 	mov	r4,_P2   00A4 7D 00               453 	mov	r5,#0x00                            454 ;	genIpush   00A6 C0 02               455 	push	ar2   00A8 C0 03               456 	push	ar3                            457 ;	genIpush   00AA C0 04               458 	push	ar4   00AC C0 05               459 	push	ar5                            460 ;	genIpush   00AE 74 3A               461 	mov	a,#__str_0   00B0 C0 E0               462 	push	acc   00B2 74 07               463 	mov	a,#(__str_0 >> 8)   00B4 C0 E0               464 	push	acc   00B6 74 80               465 	mov	a,#0x80   00B8 C0 E0               466 	push	acc                            467 ;	genCall   00BA 12 00 F5            468 	lcall	_printf   00BD E5 81               469 	mov	a,sp   00BF 24 F9               470 	add	a,#0xf9   00C1 F5 81               471 	mov	sp,a                            472 ;	hello.c:37: P1 = P2;                            473 ;	genAssign   00C3 85 A0 90            474 	mov	_P1,_P2                            475 ;	hello.c:38: P1_0 ^= 1;                            476 ;	genXor   00C6 B2 90               477 	cpl	_P1_0                            478 ;	hello.c:39: P0_0 ^= 1;                            479 ;	genXor   00C8 B2 80               480 	cpl	_P0_0                            481 ;	hello.c:40: delay();                            482 ;	genCall   00CA 12 00 84            483 	lcall	_delay                            484 ;	Peephole 112.b	changed ljmp to sjmp   00CD 80 CF               485 	sjmp	00102$                            486 ;	Peephole 259.a	removed redundant label 00104$ and ret                            487 ;                            488 	.area CSEG    (CODE)                            489 	.area CONST   (CODE)   073A                     490 __str_0:   073A 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   0755 0D                  492 	.db 0x0D   0756 0A                  493 	.db 0x0A   0757 00                  494 	.db 0x00                            495 	.area XINIT   (CODE)

⌨️ 快捷键说明

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