📄 main.s
字号:
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 + -