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

📄 main.s

📁 Intel x86处理器的汇编器
💻 S
📖 第 1 页 / 共 2 页
字号:
	movl	%eax, -16464(%ebp)	subl	$8, %esp	leal	-8248(%ebp), %eax	pushl	%eax	pushl	-16460(%ebp)	call	init_iob	addl	$16, %esp	subl	$8, %esp	leal	-16456(%ebp), %eax	pushl	%eax	pushl	-16464(%ebp)	call	init_iob	addl	$16, %esp	subl	$12, %esp	leal	-8248(%ebp), %eax	pushl	%eax	call	analyse_file	addl	$16, %esp	movl	%eax, -32(%ebp)	cmpl	$0, -32(%ebp)	je	.L30	call	print_err	call	release_resource	subl	$12, %esp	pushl	$1	call	exit.L30:	subl	$12, %esp	leal	-16456(%ebp), %eax	pushl	%eax	call	generate	addl	$16, %esp	movl	%eax, -32(%ebp)	cmpl	$0, -32(%ebp)	je	.L31	call	print_err	call	release_resource	subl	$12, %esp	pushl	$1	call	exit.L31:	cmpl	$0, -24(%ebp)	je	.L32	movl	$0, -16468(%ebp).L33:	movl	-16468(%ebp), %eax	movl	%eax, -16480(%ebp)	cltd	movl	%edx, -16476(%ebp)	movl	-16476(%ebp), %eax	cmpl	current_pc+4, %eax	ja	.L34	movl	-16476(%ebp), %edx	cmpl	current_pc+4, %edx	jb	.L35	movl	-16480(%ebp), %eax	cmpl	current_pc, %eax	jae	.L34.L35:	subl	$8, %esp	movl	-16468(%ebp), %eax	leal	-8(%ebp), %edx	addl	%edx, %eax	subl	$16432, %eax	movb	(%eax), %al	andl	$255, %eax	pushl	%eax	leal	-16468(%ebp), %eax	incl	(%eax)	pushl	$.LC43	call	printf	addl	$16, %esp	jmp	.L33.L34:	subl	$12, %esp	pushl	$.LC44	call	printf	addl	$16, %esp.L32:	subl	$12, %esp	leal	-16456(%ebp), %eax	pushl	%eax	call	flush_all_iob	addl	$16, %esp	cmpl	$0, -28(%ebp)	jne	.L36	movl	-16(%ebp), %eax	cmpl	$0, write_fname(,%eax,4)	je	.L36	subl	$12, %esp	movl	-16(%ebp), %eax	pushl	write_fname(,%eax,4)	call	a64_free	addl	$16, %esp.L36:	call	release_resource	call	reset_environment	subl	$12, %esp	pushl	-16460(%ebp)	call	close	addl	$16, %esp	subl	$12, %esp	pushl	-16464(%ebp)	call	close	addl	$16, %esp	leal	-12(%ebp), %eax	incl	(%eax)	jmp	.L27.L28:	movl	$0, %eax	movl	-4(%ebp), %ebx	leave	ret	.size	main, .-main	.section	.rodata.LC45:	.string	"s".LC46:	.string	"asm"	.text	.type	do_parse_file, @functiondo_parse_file:	pushl	%ebp	movl	%esp, %ebp	subl	$120, %esp	movl	$0, -12(%ebp)	movl	$0, -108(%ebp)	movl	$1, -112(%ebp).L39:	subl	$12, %esp	movl	12(%ebp), %eax	movsbl	(%eax),%eax	pushl	%eax	call	is_c	addl	$16, %esp	testl	%eax, %eax	jne	.L43	subl	$12, %esp	movl	12(%ebp), %eax	movsbl	(%eax),%eax	pushl	%eax	call	is_n	addl	$16, %esp	testl	%eax, %eax	jne	.L43	movl	12(%ebp), %eax	cmpb	$95, (%eax)	je	.L43	jmp	.L42.L43:	cmpl	$79, -108(%ebp)	jle	.L44	movl	$65536, -116(%ebp)	jmp	.L38.L44:	movl	-108(%ebp), %eax	leal	-8(%ebp), %edx	addl	%edx, %eax	leal	-96(%eax), %edx	movl	12(%ebp), %eax	movb	(%eax), %al	movb	%al, (%edx)	leal	-108(%ebp), %eax	incl	(%eax)	jmp	.L41.L42:	movl	12(%ebp), %eax	movsbl	(%eax),%eax	movl	%eax, -120(%ebp)	cmpl	$0, -120(%ebp)	je	.L48	cmpl	$46, -120(%ebp)	je	.L47	jmp	.L52.L47:	movl	$0, -112(%ebp)	leal	-104(%ebp), %eax	addl	-108(%ebp), %eax	movb	$0, (%eax)	subl	$8, %esp	leal	-104(%ebp), %eax	pushl	%eax	pushl	8(%ebp)	call	strcpy	addl	$16, %esp	movl	$0, -108(%ebp)	jmp	.L41.L48:	leal	-104(%ebp), %eax	addl	-108(%ebp), %eax	movb	$0, (%eax)	cmpl	$0, -112(%ebp)	je	.L49	movl	$65536, -12(%ebp).L49:	cmpl	$0, -108(%ebp)	je	.L51	subl	$8, %esp	pushl	$.LC45	leal	-104(%ebp), %eax	pushl	%eax	call	str_cmp	addl	$16, %esp	testl	%eax, %eax	jne	.L50	subl	$8, %esp	pushl	$.LC46	leal	-104(%ebp), %eax	pushl	%eax	call	str_cmp	addl	$16, %esp	testl	%eax, %eax	jne	.L50.L51:	movl	$65536, -12(%ebp).L50:	movl	-12(%ebp), %eax	movl	%eax, -116(%ebp)	jmp	.L38.L52:	movl	$65536, -116(%ebp)	jmp	.L38.L41:	leal	12(%ebp), %eax	incl	(%eax)	jmp	.L39.L38:	movl	-116(%ebp), %eax	leave	ret	.size	do_parse_file, .-do_parse_file	.comm	i_transfer,264,32	.comm	i_set,1752,32	.comm	add,220,32	.comm	push,360,32	.comm	pop,300,32	.comm	or,220,32	.comm	adc,220,32	.comm	sbb,220,32	.comm	and,220,32	.comm	daa,40,32	.comm	sub,220,32	.comm	das,40,32	.comm	xor,220,32	.comm	aaa,40,32	.comm	cmp,220,32	.comm	aas,40,32	.comm	inc,220,32	.comm	dec,220,32	.comm	pusha,40,32	.comm	popa,40,32	.comm	bound,40,32	.comm	arpl,40,32	.comm	movsxd,40,32	.comm	imul,120,32	.comm	insb,40,32	.comm	insw,40,32	.comm	insd,40,32	.comm	outsb,40,32	.comm	outsw,40,32	.comm	outsd,40,32	.comm	jo,60,32	.comm	jno,60,32	.comm	jb,60,32	.comm	jnb,60,32	.comm	jz,60,32	.comm	jnz,60,32	.comm	jbe,60,32	.comm	jnbe,60,32	.comm	js,60,32	.comm	jns,60,32	.comm	jp,60,32	.comm	jnp,60,32	.comm	jl,60,32	.comm	jnl,60,32	.comm	jle,60,32	.comm	jnle,60,32	.comm	test,180,32	.comm	xchg,220,32	.comm	mov,840,32	.comm	lea,40,32	.comm	nop,40,32	.comm	cbw,40,32	.comm	cwde,40,32	.comm	cdqe,40,32	.comm	cwd,40,32	.comm	cdq,40,32	.comm	cqo,40,32	.comm	call,100,32	.comm	wait,40,32	.comm	fwait,40,32	.comm	pushf,40,32	.comm	pushd,60,32	.comm	pushq,40,32	.comm	popf,40,32	.comm	popd,60,32	.comm	popq,40,32	.comm	sahf,40,32	.comm	lahf,40,32	.comm	movsb,40,32	.comm	movsw,40,32	.comm	movsd,40,32	.comm	movsq,40,32	.comm	cmpsb,40,32	.comm	cmpsw,40,32	.comm	cmpsd,40,32	.comm	cmpsq,40,32	.comm	stosb,40,32	.comm	stosw,40,32	.comm	stosd,40,32	.comm	stosq,40,32	.comm	lodsb,40,32	.comm	lodsw,40,32	.comm	lodsd,40,32	.comm	lodsq,40,32	.comm	scasb,40,32	.comm	scasw,40,32	.comm	scasd,40,32	.comm	scasq,40,32	.comm	ret,100,32	.comm	les,40,32	.comm	lds,40,32	.comm	enter,40,32	.comm	leave,40,32	.comm	int_3,40,32	.comm	int_n,40,32	.comm	into,40,32	.comm	iret,40,32	.comm	iretd,40,32	.comm	iretq,40,32	.comm	loopnz,40,32	.comm	loopz,40,32	.comm	loop,40,32	.comm	jrcxz,40,32	.comm	in,100,32	.comm	out,100,32	.comm	jmp,120,32	.comm	int1,40,32	.comm	hlt,40,32	.comm	cmc,40,32	.comm	clc,40,32	.comm	stc,40,32	.comm	cli,40,32	.comm	sti,40,32	.comm	cld,40,32	.comm	std,40,32	.comm	rol,140,32	.comm	ror,140,32	.comm	rcl,140,32	.comm	rcr,140,32	.comm	shl,260,32	.comm	sal,4,4	.comm	shr,140,32	.comm	sar,140,32	.comm	not,60,32	.comm	neg,60,32	.comm	mul,60,32	.comm	div,60,32	.comm	idiv,60,32	.comm	sldt,40,32	.comm	str,40,32	.comm	lldt,40,32	.comm	ltr,40,32	.comm	verr,40,32	.comm	verw,40,32	.comm	sgdt,40,32	.comm	sidt,40,32	.comm	lgdt,40,32	.comm	lidt,40,32	.comm	smsw,40,32	.comm	lmsw,40,32	.comm	invlpg,40,32	.comm	swapgs,40,32	.comm	lfence,40,32	.comm	mfence,40,32	.comm	sfence,40,32	.comm	bt,60,32	.comm	bts,60,32	.comm	btr,60,32	.comm	btc,60,32	.comm	cpuid,40,32	.comm	seto,40,32	.comm	setno,40,32	.comm	setb,40,32	.comm	setnb,40,32	.comm	setz,40,32	.comm	setnz,40,32	.comm	setbe,40,32	.comm	setnbe,40,32	.comm	movzx,60,32	.comm	sets,40,32	.comm	setns,40,32	.comm	setp,40,32	.comm	setnp,40,32	.comm	setl,40,32	.comm	setnl,40,32	.comm	setle,40,32	.comm	setnle,40,32	.comm	rsm,40,32	.comm	shrd,60,32	.comm	bsf,40,32	.comm	bsr,40,32	.comm	movsx,60,32	.comm	lar,40,32	.comm	lal,40,32	.comm	sys_call,40,32	.comm	clts,40,32	.comm	sysret,40,32	.comm	wrmsr,40,32	.comm	rdtsc,40,32	.comm	rdmsr,40,32	.comm	rdpmc,40,32	.comm	sysenter,40,32	.comm	sysexit,40,32	.comm	cmovo,40,32	.comm	cmovno,40,32	.comm	cmovb,40,32	.comm	cmovnb,40,32	.comm	cmovz,40,32	.comm	cmovnz,40,32	.comm	cmovbe,40,32	.comm	cmovnbe,40,32	.comm	cmovs,40,32	.comm	cmovns,40,32	.comm	cmovp,40,32	.comm	cmovnp,40,32	.comm	cmovl,40,32	.comm	cmovnl,40,32	.comm	cmovle,40,32	.comm	cmovnle,40,32	.comm	lss,40,32	.comm	lfs,40,32	.comm	lgs,40,32	.comm	cmpxchg,60,32	.comm	bswap,180,32	.comm	regs,1048,32	.comm	osegs,56,32	.comm	scales,40,32	.comm	casts,40,32	.comm	i_prefixs,56,32	.comm	keyword,128,32	.comm	modes,48,32	.comm	bits,32,32	.comm	current_mode,4,4	.comm	current_bits,4,4	.comm	current_pc,8,8	.comm	org,8,8	.comm	line,4,4	.comm	e_key_link,4,4	.local	program_name	.comm	program_name,4,4	.local	read_fname	.comm	read_fname,40,32	.local	write_fname	.comm	write_fname,40,32	.section	.note.GNU-stack,"",@progbits	.ident	"GCC: (GNU) 3.4.3"

⌨️ 快捷键说明

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