📄 crt0-701.s
字号:
/* crt0.S for the sparclet 701. At the moment, all the necessary syscalls are here. Convention has them in a separate file but libgloss is still in too much flux. */ .text .global startstart:! zero bss sethi %hi(_end), %o1 or %o1, %lo(_end), %o1 sethi %hi(_edata), %o0 or %o0, %lo (_edata), %o0 sub %o1, %o0, %o1Lzero_bss: subcc %o1, 4, %o1 clr [%o0] bne Lzero_bss add %o0, 4, %o0! set up argc, argv, envp (?) ld [%sp+64], %o0 sll %o0, 2, %o2 add %o2, 4, %o2 add %sp, 68, %o1 add %o1, %o2, %o2 sethi %hi(_environ), %o3 st %o2, [%o3+%lo(_environ)]! call main, exit call _main sub %sp, 32, %sp call _exit nop! void _exit (int rc) .global __exit__exit: mov 1, %g1 ta 0! If that does not work, just loop forever.Lloop_forever: b Lloop_forever nop! int _open (char *, int) .global _open_open: mov 5, %g1 ta 0 bcc Lnoerr nop b Lcerror nop! int _close (int) .global _close_close: mov 6, %g1 ta 0 bcc Lnoerr nop b Lcerror nop! int read (int, char *, int) .global _read_read: mov 3, %g1 ta 0 bcc Lnoerr nop b Lcerror nop! int write (int, char *, int) .global _write_write: mov 4, %g1 ta 0 bcc Lnoerr nop b Lcerror nopLnoerr: retl nopLcerror: sethi %hi(__impure_ptr), %g1 st %o0, [%g1+%lo(__impure_ptr)] retl mov -1, %o0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -