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

📄 below100.s

📁 用于进行gcc测试
💻 S
字号:
/*********************************************************************                                                             ******     crt0 for __BELOW100__ attribute test with SID           ******                                                             *********************************************************************/                                /*************************************/                                /** Interrupt vectors at 0x8000     **/                                /*************************************/        .section .int_vec,"ax"        .global _start        .align 1_start:        jmpf _int_reset        //jmpf _int_basetimer        //jmpf _int_timer0        //jmpf _int_timer1        //jmpf _int_irq_4        //jmpf _int_irq_5        //jmpf _int_port0        //jmpf _int_port1        //jmpf _int_irq_8        //jmpf _int_irq_9        //jmpf _int_irq_a        //jmpf _int_irq_b        //jmpf _int_irq_c        //jmpf _int_irq_d        //jmpf _int_irq_e        //jmpf _int_irq_f                                /*************************************/                                /** reset code                      **/                                /*************************************/        .text_int_reset:                                /*************************************/                                /** setup stack pointer             **/                                /*************************************/        mov sp,#__stack                                /*************************************/                                /** zero .bss section               **/                                /*************************************/        mov r0,#__bss_start        mov r1,#__bss_end        mov r2,#01:      mov.w (r0++),r2        blt r0,r1,1b                                /*************************************/                                /** copy inital value for .data     **/                                /*************************************/        mov r1,#__data_start        mov r3,#__data_end        mov r0,#@lo(__rdata)        mov r8,#@hi(__rdata)2:      movf.w r2,(r0++)        bnz r0,#0,3f        add r8,#13:      mov.w (r1++),r2        blt r1,r3,2b                                /*************************************/                                /** call hardware init routine      **/                                /*************************************/        callf _hwinit                                /*************************************/                                /** call initializaton routines     **/                                /*************************************/        callf _init                                /*************************************/                                /** setup fini routines to be       **/                                /**  called from exit               **/                                /*************************************/        mov r2,#@fptr(_fini)        callf atexit                                /*************************************/                                /** call main() with empty          **/                                /**  argc/argv/envp                 **/                                /*************************************/        mov r2,#0        mov r3,#0        mov r4,#0        callf main                                /*************************************/                                /** return from main()              **/                                /*************************************/        callf exit                                /*************************************/                                /** should never reach this code    **/                                /*************************************/        jmpf _start                                /*************************************/                                /** default h/w initialize routine  **/                                /** and default _init/_finit for    **/                                /**  -nostartfiles option           **/                                /*************************************/        .globl _hwinit        .weak _hwinit_hwinit:        .globl _init        .weak _init_init:        .globl _fini        .weak _fini_fini:        ret/****************************************************************************************************************************************                                                             ******       Chip information data for LC59_32K                    ******                 Written by T.Matsukawa                      ******                                                             ****************************************************************************************************************************************/                                /*************************************/                                /** Define convenient macros        **/                                /*************************************/#define BCD(x)  (((x)/10)%10)*0x10+((x)%10)#define BCD4(x) BCD((x)/100),BCD(x)#define BCD6(x) BCD((x)/10000),BCD((x)/100),BCD(x)                                /*************************************/                                /** Define memory sizes             **/                                /*************************************/#define RAM_SIZE 0x7E00#define ROM_SIZE 0x78000#define VRAM_SIZE 0x0000#define VRAM_ROW 0#define VRAM_COLUMN 0#define CGROM_SIZE 0x0000#define PROTECT_SIZE 0x0000                                /*************************************/                                /** section ".chip_info"            **/                                /*************************************/        .section .chip_info,"a"        .space  0xb8,0x00                                /*************************************/                                /** B8-BB : User option address     **/                                /*************************************/        .word   0x00000        .global __reset_vector#if 0x00000==0        .equ    __reset_vector,0x08000#else        .equ    __reset_vector,0x00000#endif                                /*************************************/                                /** BC-BF : Flash Protect address   **/                                /*************************************/#if PROTECT_SIZE==0        .word   0x00000000#else        .word   0x08000+ROM_SIZE-PROTECT_SIZE#endif                                /*************************************/                                /** C0-CF : Fixed string            **/                                /*************************************/        .ascii  "CHIPINFORMATION"1:      .space  (0xd0-1b),0x00                                /*************************************/                                /** D0-DF : Chipname                **/                                /*************************************/        .ascii  "LC59_32K"2:      .space  (0xe0-2b),0x00                                /*************************************/                                /** E0-E1 : Format version(BCD4)    **/                                /*************************************/        .byte   0x10, 0x00        .space  6, 0x00                                /*************************************/                                /** E8-F5 : Memory sizes            **/                                /*************************************/        .byte   BCD4(ROM_SIZE/1024)        .byte   BCD6(RAM_SIZE)        .byte   BCD6(VRAM_SIZE)        .byte   BCD4(VRAM_ROW)        .byte   BCD4(VRAM_COLUMN)        .byte   BCD4(CGROM_SIZE/1024)        .space  3, 0x00                                /*************************************/                                /** F9 : Package type               **/                                /*************************************/        .byte   0xff        .space  6, 0x00                                /*************************************/                                /** In order to link BIOS in library**/                                /*************************************/        .equ    dummy,__bios_entry

⌨️ 快捷键说明

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