Annotation of 3BSD/libc/sys/crt0.s, revision 1.1.1.1

1.1       root        1: # C runtime startoff
                      2: 
                      3:        .set    exit,1
                      4: .globl _exit
                      5: .globl start
                      6: .globl _main
                      7: .globl _environ
                      8: 
                      9: #
                     10: #      C language startup routine
                     11: 
                     12: start:
                     13:        .word   0x0000
                     14:        subl2   $8,sp
                     15:        movl    8(sp),(sp)  #  argc
                     16:        movab   12(sp),r0
                     17:        movl    r0,4(sp)  #  argv
                     18: L1:
                     19:        tstl    (r0)+  #  null args term ?
                     20:        bneq    L1
                     21:        cmpl    r0,*4(sp)  #  end of 'env' or 'argv' ?
                     22:        blss    L2
                     23:        tstl    -(r0)  # envp's are in list
                     24: L2:
                     25:        movl    r0,8(sp)  #  env
                     26:        movl    r0,_environ  #  indir is 0 if no env ; not 0 if env
                     27:        calls   $3,_main
                     28:        pushl   r0
                     29:        calls   $1,_exit
                     30:        chmk    $exit
                     31: #
                     32:        .data
                     33: _environ:      .space  4

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.