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

📄 crtavr.lis

📁 单片机开发资料光盘-双龙-686M.zip
💻 LIS
字号:
                         .area func_lit(rom)
 0000                 __func_lit_start::
                         .area lit(rom)
 0000                 __lit_start::
                         .area idata(rom)
 0000                 __idata_start::
                         .area text(rom)
 0000                 __text_start::
                         .area data(ram)
 0000                 __data_start::
                         .area bss(ram)
 0000                 __bss_start::
                       
                         .text
 0000                 __start::			; entry point
 0000 A49A               sbi 0x14,4
 0002 AC9A               sbi 0x15,4
                       ; to be included by the crt*.s files
                       ;
                         ; initialize stacks
                         ;
                         ; set the hardware stack to ram_end, and the software stack some
                         ; bytes below that
 0004 C0E0              ldi R28,<ram_end
 0006 D0E0              ldi R29,>ram_end
 0008 CDBF              out $3D,R28
 000A DEBF              out $3E,R29
 000C C050              subi R28,<hwstk_size
 000E D040              sbci R29,>hwstk_size
                       
 0010 0AEA              ldi R16,0xAA    ; sentenial
 0012 0883              std Y+0,R16     ; put sentenial at bottom of HW stack
                       
 0014 0024              clr R0
 0016 E0E0              ldi R30,<__bss_start
 0018 F0E0              ldi R31,>__bss_start
 001A 10E0              ldi R17,>__bss_end
                       
                       ; this loop zeros out all the data in the bss area
                       ;
 001C                 init_loop:
 001C E030              cpi R30,<__bss_end
 001E F107              cpc R31,R17
 0020 11F0              breq init_done
 0022 0192              st Z+,R0
 0024 FBCF              rjmp init_loop
 0026                 init_done:
                       
 0026 0083              std Z+0,R16     ; put sentenial at bottom of SW stack
                       
                       ; copy data from idata to data
                       ; idata contains the initialized values of the global variables
                       
 0028 E0E0              ldi R30,<__idata_start
 002A F0E0              ldi R31,>__idata_start
 002C A0E0              ldi R26,<__data_start
 002E B0E0              ldi R27,>__data_start
 0030 10E0              ldi R17,>__idata_end
                       
 0032                 copy_loop:
 0032 E030              cpi R30,<__idata_end
 0034 F107              cpc R31,R17
 0036 21F0              breq copy_done
 0038 C895              lpm     ; load (Z) byte into R0
 003A 3196              adiw R30,1
 003C 0D92              st X+,R0
 003E F9CF              rjmp copy_loop
 0040                 copy_done:
                       
                       ; call user main routine
 0040 00D0              rcall _main
 0042                 _exit::
 0042 FFCF              rjmp    _exit
                       
                       ; interrupt vectors. The first entry is the reset vector
                       ;
                         .area vector(abs)
                         .org 0
 0000 00C0              rjmp __start

⌨️ 快捷键说明

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