📄 crt0.l
字号:
1 ;
2 ; C program assembly startup for an embedded environment.
3 ; -------------------------------------------------------
4 ;
5 ; Written by Tomas Evensen 1993-04-17.
6 ; Copyright 1993 Diab Data AB.
7 ;
8 ; Modified by Dave McCartney May 1996
9 ;
10 PSECT
11 XDEF START
12 XREF _clean1
13 XREF _size
14
15 START:
16 ;
17 ; insert/modify code here to initialize (if necessary):
18 ; - sp (stack pointer)
19 ; - a5 (data pointer)
20 ; - the cache
21 ; - exception vectors
22 ;
23 ; initialize sp to value from link editor command file
24 ; move.l #___SP_INIT,a7
00000000 00 2e7c 0000 0000 25 move.l #STKTOP,a7
26
27 ; initialize a5 to sdata (provided by linker)
00000006 00 2a7c 0000 0000 28 move.l #sdata,a5
29 ;
30 ; initialise the bss section to zero
31
0000000c 00 227c 0000 0000 32 MOVE.L #_clean1,A1
00000012 00 223c 0000 0000 33 MOVE.L #_size,D1
00000018 00 e489 34 LSR.L #2,D1
0000001a 00 4299 35 LOOP CLR.L (A1)+
0000001c 00 5381 36 SUBQ.L #1,D1
0000001e 00 66fa 37 BNE LOOP
38
39
40
00000020 00 4eb9 0000 0000 41 jsr _main ; go to main code
42
43
44 section .init,2,C
45 XDEF ___init
46 ___init:
47
48 section .fini,2,C
49 ; Return from __init
00000000 02 4e75 50 rts
51 XDEF ___fini
52 ___fini:
53
54 section .eini,2,C
55 ; Return from ___fini
56
57
58
00000000 03 4e75 59 rts ; this return will be used instead of illegal
60 ; if a benchmark driver routine is used
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -