crt0.s

来自「linux内核」· S 代码 · 共 54 行

S
54
字号
	.code16#ifndef REGPARM# error "This file assumes -mregparm=3 -DREGPARM=3"#endif		.section ".init","ax"	.globl _start	.type _start,@function_start:	# Align the stack and make sure the high half is zero	andl $0xfff8,%esp		# Clear the .bss	cld	xorl %eax,%eax	movw $__bss_start,%di	movw $_end+3,%cx	subw %di,%cx	shrw $2,%cx	rep ; stosl	# Compute argc and argv (assumes REGPARM)	xorl %edx,%edx	movzbw 0x80,%bx	movb %dl,0x81(%bx)	# Zero-terminate string	movb $0x81,%dl	pushl %eax		# Make space for argv	movl %esp,%eax	calll __parse_argv	pushl %eax		# argc	# Initialize malloc	calll __init_memory_arena	# Now call main... (NOTE: gcc forces main to be regparm 0)	popl %eax		# argc	popl %edx		# argv	calll main	# Here %eax is the exit code, fall through into exit		.size _start,.-_start	.globl exit	.type exit,@functionexit:	# Exit code already in %eax	movb $0x4c,%ah		# Terminate program	int $0x211:	hlt	jmp 1b	.size exit,.-exit

⌨️ 快捷键说明

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