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

📄 crtn.asm

📁 gcc-you can use this code to learn something about gcc, and inquire further into linux,
💻 ASM
字号:
/* Copyright (C) 2001, 2002 Free Software Foundation, Inc.   Contributed by Hans-Peter Nilsson <hp@bitrange.com>This file is free software; you can redistribute it and/or modify itunder the terms of the GNU General Public License as published by theFree Software Foundation; either version 2, or (at your option) anylater version.In addition to the permissions in the GNU General Public License, theFree Software Foundation gives you unlimited permission to link thecompiled version of this file into combinations with other programs,and to distribute those combinations without any restriction comingfrom the use of this file.  (The General Public License restrictionsdo apply in other respects; for example, they cover modification ofthe file, and distribution when not linked into a combineexecutable.)This file is distributed in the hope that it will be useful, butWITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNUGeneral Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program; see the file COPYING.  If not, write tothe Free Software Foundation, 59 Temple Place - Suite 330,Boston, MA 02111-1307, USA.  */% This must be the last file on the link-line, allocating global registers% from the top.% Register $254 is the stack-pointer.sp GREG% Register $253 is frame-pointer.  It's not supposed to be used in most% functions.fp GREG% $252 is the static chain register; nested functions receive the% context of the surrounding function through a pointer passed in this% register.static_chain GREGstruct_value_reg GREG% These registers are used to pass state at an exceptional return (C++).eh_state_3 GREGeh_state_2 GREGeh_state_1 GREGeh_state_0 GREG#ifdef __MMIX_ABI_GNU__% Allocate global registers used by the GNU ABI.gnu_parm_reg_16 GREGgnu_parm_reg_15 GREGgnu_parm_reg_14 GREGgnu_parm_reg_13 GREGgnu_parm_reg_12 GREGgnu_parm_reg_11 GREGgnu_parm_reg_10 GREGgnu_parm_reg_9 GREGgnu_parm_reg_8 GREGgnu_parm_reg_7 GREGgnu_parm_reg_6 GREGgnu_parm_reg_5 GREGgnu_parm_reg_4 GREGgnu_parm_reg_3 GREGgnu_parm_reg_2 GREGgnu_parm_reg_1 GREG#endif /* __MMIX_ABI_GNU__ */% Provide last part of _init and _fini.% The return address is stored in the topmost stored register in the% register-stack.  We ignore the current value in rJ.  It is probably% garbage because each fragment of _init and _fini may have their own idea% of the current stack frame, if they're cut out from a "real" function% like in gcc/crtstuff.c.	.section .init,"ax",@progbits	GETA	$255,0F	PUT	rJ,$255	POP	0,00H	PUT	rJ,$0	POP	0,0		.section .fini,"ax",@progbits	GETA	$255,0F	PUT	rJ,$255	POP	0,00H	PUT	rJ,$0	POP	0,0

⌨️ 快捷键说明

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