📄 elf-x86id.asm
字号:
db 32 db 1 db -91 db 0 db 0 db 0 db 0 db 0 dd 0 dd 0 dd 0 dd 32768 dd 0 db 0 db 3 db -14 db 15 db 16 db 0 db 2 db 0 dd 16580 dd 4292 dd 0 dd 32768 dd 0 db 0 db 3 db -14 db 15 db 16 db 0 db 2 db 0 dd 16580 dd 4482 dd 0 dd 32768 dd 0 db 0 db 3 db -14 db 15 db 17 db 0 db 2 db 0 dd 4482 dd 16580 dd 0 align 4 ;.type maskmovdqu_insn,@object ;.size maskmovdqu_insn,28maskmovdqu_insn: dd 32768 dd 0 db 0 db 3 db 102 db 15 db -9 db 0 db 2 db 0 dd 16580 dd 4292 dd 0 align 32 ;.type movdqau_insn,@object ;.size movdqau_insn,56movdqau_insn: dd 32768 dd 16 db 0 db 3 db 0 db 15 db 111 db 0 db 2 db 0 dd 16580 dd 4549 dd 0 dd 32768 dd 16 db 0 db 3 db 0 db 15 db 127 db 0 db 2 db 0 dd 4549 dd 16580 dd 0 align 4 ;.type movdq2q_insn,@object ;.size movdq2q_insn,28movdq2q_insn: dd 32768 dd 0 db 0 db 3 db -14 db 15 db -42 db 0 db 2 db 0 dd 16516 dd 4292 dd 0 align 4 ;.type movq2dq_insn,@object ;.size movq2dq_insn,28movq2dq_insn: dd 32768 dd 0 db 0 db 3 db -13 db 15 db -42 db 0 db 2 db 0 dd 16580 dd 4228 dd 0 align 4 ;.type pslrldq_insn,@object ;.size pslrldq_insn,28pslrldq_insn: dd 32768 dd 32 db 0 db 3 db 102 db 15 db 115 db 0 db 2 db 0 dd 4292 dd 8480 dd 0 align 4 ;.type now3d_insn,@object ;.size now3d_insn,28now3d_insn: dd 65536 dd 128 db 0 db 2 db 15 db 15 db 0 db 0 db 2 db 0 dd 16516 dd 4485 dd 0 align 4 ;.type cyrixmmx_insn,@object ;.size cyrixmmx_insn,28cyrixmmx_insn: dd 139264 dd 4 db 0 db 2 db 15 db 0 db 0 db 0 db 2 db 0 dd 16516 dd 4485 dd 0 align 4 ;.type pmachriw_insn,@object ;.size pmachriw_insn,28pmachriw_insn: dd 139264 dd 0 db 0 db 2 db 15 db 94 db 0 db 0 db 2 db 0 dd 16516 dd 4482 dd 0 align 4 ;.type rsdc_insn,@object ;.size rsdc_insn,28rsdc_insn: dd 655368 dd 0 db 0 db 2 db 15 db 121 db 0 db 0 db 2 db 0 dd 16454 dd 4514 dd 0 align 4 ;.type cyrixsmm_insn,@object ;.size cyrixsmm_insn,28cyrixsmm_insn: dd 655368 dd 4 db 0 db 2 db 15 db 0 db 0 db 0 db 1 db 0 dd 4514 dd 0 dd 0 align 4 ;.type svdc_insn,@object ;.size svdc_insn,28svdc_insn: dd 655368 dd 0 db 0 db 2 db 15 db 120 db 0 db 0 db 2 db 0 dd 4514 dd 16454 dd 0 align 32 ;.type ibts_insn,@object ;.size ibts_insn,56ibts_insn: dd 6291460 dd 0 db 16 db 2 db 15 db -89 db 0 db 0 db 2 db 0 dd 4419 dd 16449 dd 0 dd 6291460 dd 0 db 32 db 2 db 15 db -89 db 0 db 0 db 2 db 0 dd 4451 dd 16481 dd 0 align 32 ;.type umov_insn,@object ;.size umov_insn,168umov_insn: dd 2097156 dd 0 db 0 db 2 db 15 db 16 db 0 db 0 db 2 db 0 dd 4387 dd 16417 dd 0 dd 2097156 dd 0 db 16 db 2 db 15 db 17 db 0 db 0 db 2 db 0 dd 4419 dd 16449 dd 0 dd 2097156 dd 0 db 32 db 2 db 15 db 17 db 0 db 0 db 2 db 0 dd 4451 dd 16481 dd 0 dd 2097156 dd 0 db 0 db 2 db 15 db 18 db 0 db 0 db 2 db 0 dd 16417 dd 4387 dd 0 dd 2097156 dd 0 db 16 db 2 db 15 db 19 db 0 db 0 db 2 db 0 dd 16449 dd 4419 dd 0 dd 2097156 dd 0 db 32 db 2 db 15 db 19 db 0 db 0 db 2 db 0 dd 16481 dd 4451 dd 0 align 32 ;.type xbts_insn,@object ;.size xbts_insn,56xbts_insn: dd 6291460 dd 0 db 16 db 2 db 15 db -90 db 0 db 0 db 2 db 0 dd 16449 dd 4418 dd 0 dd 6291460 dd 0 db 32 db 2 db 15 db -90 db 0 db 0 db 2 db 0 dd 16481 dd 4450 dd 0 ;.type size_lookup.0,@object ;.size size_lookup.0,8size_lookup.0: db 0 db 8 db 16 db 32 db 64 db 80 db -128 db 0 section .rodata;.str1.1,"aMS",@progbits,1LC0: db "invalid operand conversion", 0LC1: db "./modules/arch/x86/x86id.re", 0LC2: db "$", 0 section .text ;.type x86_new_jmp,@functionx86_new_jmp: push ebp mov ebp, esp push edi push esi push ebx sub esp, 76 mov edx, DWORD [ebp+8] mov eax, DWORD [edx+4] movzx esi, al mov ebx, DWORD [edx] shr eax, 8 mov DWORD [ebp-60], eax mov edi, DWORD [ebp+32] mov DWORD [ebp-56], edi mov eax, DWORD [ebp+16] mov edi, DWORD [eax] cmp DWORD [edi+4], 4 je .L2 sub esp, 4 push DWORD LC0 push DWORD 1543 push DWORD LC1 call [DWORD yasm_internal_error_] add esp, 16.L2: mov edx, DWORD [ebp+20] mov eax, DWORD [edx+16] and eax, 3584 cmp eax, 1536 jne .L3 push DWORD [ebp+32] sub esp, 8 push DWORD [edi+8] call yasm_expr_copy mov DWORD [esp], eax call yasm_expr_expr add esp, 12 push eax sub esp, 8 push DWORD [ebp+32] push DWORD 0 sub esp, 4 push DWORD [edi+8] call yasm_expr_expr add esp, 8 push eax push DWORD 25 call yasm_expr_new add esp, 20 push eax call yasm_expr_expr add esp, 8 push eax push DWORD 27 call yasm_expr_new mov DWORD [ebp-52], eax add esp, 16 jmp .L4.L3: mov eax, DWORD [edi+8] mov DWORD [ebp-52], eax.L4: sub esp, 12 push DWORD [ebp+32] push DWORD 0 push DWORD [ebp+28] push DWORD [ebp+24] push DWORD LC2 call yasm_symrec_define_label mov DWORD [ebp-48], eax mov BYTE [ebp-32], 0 add esp, 32 mov edi, DWORD [ebp+20] mov eax, DWORD [edi+16] and eax, 3584 cmp eax, 1024 je .L6 cmp eax, 1024 jg .L11 cmp eax, 512 je .L7 jmp .L9.L11: cmp eax, 1536 je .L8 jmp .L9.L6: mov DWORD [ebp-44], 3 jmp .L5.L7: mov DWORD [ebp-44], 4 jmp .L5.L8: mov DWORD [ebp-44], 5 mov al, BYTE [ebx+9] mov BYTE [ebp-32], al mov al, BYTE [ebx+10] mov BYTE [ebp-31], al mov al, BYTE [ebx+11] mov BYTE [ebp-30], al mov al, BYTE [ebx+12] mov BYTE [ebp-29], al jmp .L5.L9: mov DWORD [ebp-44], 0.L5: mov edx, DWORD [ebp+20] mov al, BYTE [edx+8] mov BYTE [ebp-27], al cmp BYTE [edx+14], 1 jbe .L12 mov edx, DWORD [edx+20] mov eax, edx and eax, 61440 cmp eax, 36864 jne .L12 mov eax, edx and eax, 224 shr eax, 5 mov al, BYTE [size_lookup.0+eax] mov BYTE [ebp-28], al jmp .L13.L12: mov BYTE [ebp-28], 0.L13: mov eax, DWORD [ebp+20] test BYTE [eax+5], 1 je .L14 mov dl, BYTE [ebp-60] mov BYTE [ebp-28], dl.L14: mov BYTE [ebp-40], 0 mov BYTE [ebp-36], 0 test esi, esi jle .L16 mov cl, BYTE [yasm_x86_LTX_mode_bits] mov edi, DWORD [cpu_enabled] mov DWORD [ebp-76], edi mov al, BYTE [ebp-27] mov BYTE [ebp-61], al.L34: mov eax, DWORD [ebx] mov edx, eax mov edi, DWORD [ebp+8] or edx, DWORD [edi+8] test edx, 16777216 je .L20 cmp cl, 64 jne .L17.L20: test edx, 33554432 je .L21 cmp cl, 64 je .L17.L21: and edx, -50331649 mov eax, DWORD [ebp-76] and eax, edx cmp eax, edx jne .L17 cmp BYTE [ebx+14], 0 je .L17 mov edx, DWORD [ebx+16] mov eax, edx and eax, 61440 cmp eax, 32768 jne .L17 mov al, BYTE [ebp-61] cmp BYTE [ebx+8], al jne .L17 mov eax, edx and eax, 3584 cmp eax, 512 je .L29 cmp eax, 1024 jne .L17 mov al, BYTE [ebx+9] mov BYTE [ebp-40], al mov dl, BYTE [ebx+10] mov BYTE [ebp-39], dl mov al, BYTE [ebx+11] mov BYTE [ebp-38], al mov al, BYTE [ebx+12] mov BYTE [ebp-37], al test BYTE [ebx+4], 16 je .L17 add edx, DWORD [ebp-60] mov BYTE [ebp-39], dl jmp .L17.L29: mov al, BYTE [ebx+9] mov BYTE [ebp-36], al mov al, BYTE [ebx+10] mov BYTE [ebp-35], al mov dl, BYTE [ebx+11] mov BYTE [ebp-34], dl mov al, BYTE [ebx+12] mov BYTE [ebp-33], al test BYTE [ebx+4], 4 je .L30 add edx, DWORD [ebp-60] mov BYTE [ebp-34], dl.L30: mov eax, DWORD [ebx+16] and eax, 196608 cmp eax, 196608 jne .L17 mov BYTE [ebp-32], 1 movzx eax, BYTE [ebx+9] mov al, BYTE [eax+10+ebx] mov BYTE [ebp-31], al.L17: dec esi add ebx, 28 test esi, esi jle .L16 cmp BYTE [ebp-40], 0 je .L34 cmp BYTE [ebp-36], 0 je .L34.L16: sub esp, 12 lea eax, [ebp-56] push eax call yasm_x86__bc_new_jmp lea esp, [ebp-12] pop ebx pop esi pop edi leave ret.Lfe1: ;.size x86_new_jmp,.Lfe1-x86_new_jmp section .rodata align 32 ;.type size_lookup.1,@object ;.size size_lookup.1,32size_lookup.1: dd 0 dd 1 dd 2 dd 4 dd 8 dd 10 dd 16 dd 0 section .rodata;.str1.1LC3: db "invalid operand type", 0LC4: db "invalid target modifier type", 0LC6: db "mismatch in operand sizes", 0LC7: db "operand size not specified", 0 section .rodata;.str1.32,"aMS",@progbits,1 align 32LC8: db "unrecognized x86 ext mod index", 0 align 32LC9: db "unrecognized x86 extended modifier", 0 align 32LC5: db "invalid combination of opcode and operands", 0 section .rodata;.str1.1LC10: db "unknown operand action", 0 section .rodata;.str1.32 align 32LC11: db "unknown operand postponed action", 0 section .textglobal yasm_x86__parse_insn ;.type yasm_x86__parse_insn,@functionyasm_x86__parse_insn: push ebp mov ebp, esp push edi push esi push ebx sub esp, 76 mov edx, DWORD [ebp+8] mov eax, DWORD [edx+4] mov ebx, DWORD [edx] mov ecx, eax shr ecx, 8 mov DWORD [ebp-68], ecx mov DWORD [ebp-72], 0 and eax, 255 mov DWORD [ebp-64], eax jle .L38.L166: mov DWORD [ebp-80], 0 mov eax, DWORD [ebx] mov edx, eax mov ecx, DWORD [ebp+8] or edx, DWORD [ecx+8] test edx, 16777216 je .L42 cmp BYTE [yasm_x86_LTX_mode_bits], 64 jne .L39.L42: test edx, 33554432 je .L43 cmp BYTE [yasm_x86_LTX_mode_bits], 64 je .L39.L43: and edx, -50331649 mov eax, edx and eax, DWORD [cpu_enabled] cmp eax, edx jne .L39 movzx eax, BYTE [ebx+14] cmp DWORD [ebp+12], eax jne .L39 cmp DWORD [ebp+16], 0 je .L261 mov DWORD [ebp-76], 0 mov eax, DWORD [ebp+16] mov edi, DWORD [eax] test edi, edi je .L48 movzx eax, BYTE [ebx+14] cmp DWORD [ebp-76], eax jge .L48 cmp DWORD [ebp-80], 0 jne .L39.L164: mov edx, DWORD [ebp-76] mov eax, DWORD [ebx+16+edx*4] and eax, 31 cmp eax, 21 ja .L139 jmp DWORD [.L140+eax*4] section .rodata align 4 align 4.L140: dd .L53 dd .L57 dd .L71 dd .L55 dd .L75 dd .L73 dd .L83 dd .L85 dd .L88 dd .L91 dd .L94 dd .L97 dd .L103 dd .L109 dd .L115 dd .L118 dd .L121 dd .L124 dd .L127 dd .L130 dd .L133 dd .L136 section .text.L53: cmp DWORD [edi+4], 4 jmp .L273.L55: cmp DWORD [edi+4], 3 je .L52.L57: cmp DWORD [edi+4], 1 jne .L138 mov eax, DWORD [edi+8] and eax, -16 cmp eax, 48 je .L52 cmp eax, 48 ja .L69 cmp eax, 16 je .L52 cmp eax, 32 jmp .L273.L69: cmp eax, 80 je .L52 cmp eax, 80 ja .L70 cmp eax, 64 jmp .L273.L70: cmp eax, 96 jmp .L273.L71: cmp DWORD [edi+4], 3 jmp .L273.L73: cmp DWORD [edi+4], 3 je .L52.L75: cmp DWORD [edi+4], 1 jne .L138 mov eax, DWORD [edi+8] and eax, -16 cmp eax, 112 je .L52 cmp eax, 128 jmp .L273.L83: cmp DWORD [edi+4], 2 jmp .L273.L85: cmp DWORD [edi+4], 1 jne .L138 mov eax, DWORD [edi+8] and eax, -16 cmp eax, 144 jmp .L273.L88: cmp DWORD [edi+4], 1 jne .L138 mov eax, DWORD [edi+8] and eax, -16 cmp eax, 160 jmp .L273.L91: cmp DWORD [edi+4], 1 jne .L138 mov eax, DWORD [edi+8] and eax, -16 cmp eax, 176 jmp .L273.L94: cmp DWORD [edi+4], 1 jne .L138 cmp DWORD [edi+8], 96 jmp .L273.L97: cmp DWORD [edi+4], 1 jne .L138 mov ecx, DWORD [ebp-76] mov eax, DWORD [ebx+16+ecx*4] and eax, 224 cmp eax, 32 jne .L100 cmp DWORD [edi+8], 16 je .L100 cmp DWORD [edi+8], 32 jne .L138.L100: mov edx, DWORD [ebp-76] mov eax, DWORD [ebx+16+edx*4] and eax, 224 cmp eax, 64 jne .L101 cmp DWORD [edi+8], 48 jne .L138.L101: mov ecx, DWORD [ebp-76] mov eax, DWORD [ebx+16+ecx*4] and eax, 224 cmp eax, 96 jne .L102 cmp DWORD [edi+8], 64 jne .L138.L102: mov edx, DWORD [ebp-76] mov eax, DWORD [ebx+16+edx*4] and eax, 224 cmp eax, 128 jne .L52 cmp DWORD [edi+8], 80 jmp .L273.L103: cmp DWORD [edi+4], 1 jne .L138 mov ecx, DWORD [ebp-76] mov eax, DWORD [ebx+16+ecx*4] and eax, 224 cmp eax, 32 jne .L106 cmp DWORD [edi+8], 17 je .L106 cmp DWORD [edi+8], 33 jne .L138.L106: mov edx, DWORD [ebp-76] mov eax, DWORD [ebx+16+edx*4] and eax, 224 cmp eax, 64 jne .L107 cmp DWORD [edi+8], 49 jne .L138.L107: mov ecx, DWORD [ebp-76] mov eax, DWORD [ebx+16+ecx*4] and eax, 224 cmp eax, 96 jne .L108 cmp DWORD [edi+8], 65 jne .L138.L108: mov edx, DWORD [ebp-76] mov eax, DWORD [ebx+16+edx*4] and eax, 224 cmp eax, 128 jne .L52 cmp DWORD [edi+8], 81 jmp .L273.L109: cmp DWORD [edi+4], 1 jne .L138 mov ecx, DWORD [ebp-76] mov eax, DWORD [ebx+16+ecx*4] and eax, 224 cmp eax, 32 jne .L112 cmp DWORD [edi+8], 18 je .L112 cmp DWORD [edi+8], 34 jne .L138.L112: mov edx, DWORD [ebp-76] mov eax, DWORD [ebx+16+edx*4] and eax, 224 cmp eax, 64 jne .L113 cmp DWORD [edi+8], 50 jne .L138.L113: mov ecx, DWORD [ebp-76] mov eax, DWORD [ebx+16+ecx*4] and eax, 224 cmp eax, 96 jne .L114 cmp DWORD [edi+8], 66 jne .L138.L114: mov edx, DWORD [ebp-76] mov eax, DWORD [ebx+16+edx*4] and eax, 224 cmp eax, 128 jne .L52 cmp DWORD [edi+8], 82 jmp .L273.L115: cmp DWORD [edi+4], 2 jne .L138 mov eax, DWORD [edi+8] and eax, 15 cmp eax, 1 jmp .L273.L118: cmp DWORD [edi+4], 2 jne .L138 mov eax, DWORD [edi+8] and eax, 15 cmp eax, 3 jmp .L273.L121: cmp DWORD [edi+4], 2 jne .L138 test BYTE [edi+8], 15 jmp .L273.L124: cmp DWORD [edi+4], 2 jne .L138 mov eax, DWORD [edi+8] and eax, 15 cmp eax, 4 jmp .L273.L127: cmp DWORD [edi+4], 2 jne .L138 mov eax, DWORD [edi+8] and eax, 15 cmp eax, 5 jmp .L273.L130: cmp DWORD [edi+4], 2 jne .L138 mov eax, DWORD [edi+8] and eax, 15 cmp eax, 2 jmp .L273.L133: cmp DWORD [edi+4], 1 jne .L138 cmp DWORD [edi+8], 148 jmp .L273.L136: cmp DWORD [edi+4], 3 jne .L138 sub esp, 8 push DWORD 1 push DWORD [edi+8] call yasm_ea_get_disp mov DWORD [esp], eax call yasm_expr__contains add esp, 16 test eax, eax.L273: je .L52.L138: mov DWORD [ebp-80], 1 jmp .L52.L139: sub esp, 4 push DWORD LC3 push DWORD 1849 push DWORD LC1 call [DWORD yasm_internal_error_] add esp, 16.L52: cmp DWORD [ebp-80], 0 jne .L39 mov ecx, DWORD [ebp-76] mov eax, DWORD [ebx+16+ecx*4] and eax, 224 shr eax, 5 mov esi, DWORD [size_lookup.1+eax*4] cmp DWORD [edi+4], 1 jne .L142 cmp DWORD [edi+16], 0 jne .L142 sub esp, 12 push DWORD [edi+8] call yasm_x86__get_reg_size add esp, 16 cmp eax, esi jmp .L274.L142: mov eax, DWORD [ebp-76] test BYTE [ebx+17+eax*4], 1 je .L145 test esi, esi je .L144 cmp DWORD [edi+16], esi je .L144 cmp DWORD [edi+16], 0 jmp .L274.L145: cmp DWORD [edi+16], esi.L274: je .L144 mov DWORD [ebp-80], 1.L144: cmp DWORD [ebp-80], 0 jne .L39 mov edx, DWORD [ebp-76] mov eax, DWORD [ebx+16+edx*4] and eax, 3584 cmp eax, 1024 je .L155 cmp eax, 1024 jg .L163 test eax, eax je .L151 cmp eax, 512 je .L153 jmp .L161.L163: cmp eax, 1536 je .L157 cmp eax, 2048 je .L159 jmp .L161.L151: cmp DWORD [edi+12], 0 jmp .L275.L153: cmp DWORD [edi+12], 1 jmp .L275.L155: cmp DWORD [edi+12], 2 jmp .L275.L157: cmp DWORD [edi+12], 3 jmp .L275.L159: cmp DWORD [edi+12], 4.L275: je .L49 mov DWORD [ebp-80], 1 jmp .L49.L161: sub esp, 4 push DWORD LC4 push DWORD 1899 push DWORD LC1 call [DWORD yasm_internal_error_] add esp, 16.L49: mov edi, DWORD [edi] inc DWORD [ebp-76] test edi, edi je .L48 movzx eax, BYTE [ebx+14] cmp DWORD [ebp-76], eax jge .L48 cmp DWORD [ebp-80], 0 je .L164 jmp .L39.L48: cmp DWORD [ebp-80], 0 je .L261.L39: dec DWORD [ebp-64] add ebx, 28 cmp DWORD [ebp-64], 0 jle .L38 cmp DWORD [ebp-72], 0 je .L166 jmp .L167.L38: cmp DWORD [ebp-72], 0 jne .L167 jmp .L277.L261: mov DWORD [ebp-72], 1 jmp .L38.L167: mov eax, DWORD [ebx+4] and eax, -268435456 cmp eax, 268435456 je .L170 cmp eax, 268435456 jg .L182 test eax, eax je .L168 jmp .L180.L182: cmp eax, 536870912 je .L178 jmp .L180.L170: mov eax, DWORD [ebx+4] and eax, 267386880 shr eax, 20 je .L172 cmp eax, 1 je .L173 jmp .L174.L172: sub esp, 8 push DWORD LC6 jmp .L268.L173: sub esp, 8 push DWORD LC7.L268: push DWORD [ebp+28] call yasm__error jmp .L276.L174: sub esp, 4 push DWORD LC8 push DWORD 1930 push DWORD LC1 call [DWORD yasm_internal_error_] jmp .L276.L178: sub esp, 4 push DWORD LC8 push DWORD 1937 jmp DWORD .L269.L180: sub esp, 4 push DWORD LC9 push DWORD 1941.L269: push DWORD LC1 call [DWORD yasm_internal_error_] add esp, 16.L168: cmp DWORD [ebp+16], 0 je .L183 mov eax, DWORD [ebx+16] and eax, 61440 cmp eax, 32768 jne .L183 sub esp, 4 push DWORD [ebp+28] push DWORD [ebp+24] push DWORD [ebp+20] push ebx push DWORD [ebp+16] push DWORD [ebp+12] push DWORD [ebp+8] call x86_new_jmp jmp .L36.L183: mov ecx, DWORD [ebp+28] mov DWORD [ebp-56], ecx mov DWORD [ebp-52], 0 mov DWORD [ebp-48], 0 mov al, BYTE [ebx+8] mov BYTE [ebp-44], al mov al, BYTE [ebx+9] mov BYTE [ebp-43], al mov al, BYTE [ebx+10] mov BYTE [ebp-42], al mov al, BYTE [ebx+11] mov BYTE [ebp-41], al mov al, BYTE [ebx+12] mov BYTE [ebp-40], al mov al, BYTE [ebx+13] mov BYTE [ebp-39], al cmp BYTE [yasm_x86_LTX_mode_bits], 64 jne .L184 cmp BYTE [ebx+8], 64 jne .L184 mov al, 72 jmp .L185.L184: mov al, 0.L185: mov BYTE [ebp-38], al mov BYTE [ebp-37], 0 mov BYTE [ebp-36], 0 mov BYTE [ebp-35], 0 mov BYTE [ebp-34], 0 test BYTE [ebx+4], 1 je .L186 mov al, BYTE [ebp-68] add BYTE [ebp-40], al shr DWORD [ebp-68], 8.L186: test BYTE [ebx+4], 2 je .L187 shr DWORD [ebp-68], 8.L187: test BYTE [ebx+4], 4 je .L188 mov dl, BYTE [ebp-68] add BYTE [ebp-41], dl shr DWORD [ebp-68], 8.L188: test BYTE [ebx+4], 8 je .L189 shr DWORD [ebp-68], 8.L189: test BYTE [ebx+4], 16 je .L190 mov cl, BYTE [ebp-68] add BYTE [ebp-42], cl shr DWORD [ebp-68], 8.L190: test BYTE [ebx+4], 32 je .L191 mov al, BYTE [ebp-68] add BYTE [ebp-39], al shr DWORD [ebp-68], 8.L191: test BYTE [ebx+4], 64 je .L192 mov dl, BYTE [ebp-68] mov BYTE [ebp-44], dl shr DWORD [ebp-68], 8.L192: cmp BYTE [ebx+4], 0 jns .L193 push DWORD [ebp+28] push DWORD 0 sub esp, 4 movzx eax, BYTE [ebp-68] push eax call yasm_intnum_new_uint mov DWORD [esp], eax call yasm_expr_int add esp, 8 push eax push DWORD 0 call yasm_expr_new mov DWORD [ebp-48], eax mov BYTE [ebp-37], 1 add esp, 16.L193: cmp DWORD [ebp+16], 0 je .L194 mov DWORD [ebp-76], 0 mov ecx, DWORD [ebp+16] mov edi, DWORD [ecx] test edi, edi je .L194 movzx eax, BYTE [ebx+14] cmp DWORD [ebp-76], eax jge .L194.L257: mov edx, DWORD [ebp-76] mov eax, DWORD [ebx+16+edx*4] and eax, 61440 cmp eax, 12288 je .L223 cmp eax, 12288 jg .L247 cmp eax, 4096 je .L210 cmp eax, 4096 jg .L248 test eax, eax je .L201 jmp .L245.L248: cmp eax, 8192 je .L220 jmp .L245.L247: cmp eax, 20480 je .L232 cmp eax, 20480 jg .L249 cmp eax, 16384 je .L226 jmp .L245.L249: cmp eax, 24576 je .L236 cmp eax, 28672 je .L239 jmp .L245.L201: mov eax, DWORD [edi+4] cmp eax, 3 je .L205 cmp eax, 3 jbe .L200 cmp eax, 4 je .L206 jmp .L200.L205: sub esp, 12 push DWORD [edi+8] call yasm_ea_delete jmp .L271.L206: sub esp, 12 push DWORD [edi+8] call yasm_expr_delete jmp .L271.L210: mov eax, DWORD [edi+4] cmp eax, 2 je .L213 cmp eax, 2 ja .L219 cmp eax, 1 je .L212 jmp .L200.L219: cmp eax, 3 je .L214 cmp eax, 4 je .L216 jmp .L200.L212: sub esp, 4 movzx eax, BYTE [yasm_x86_LTX_mode_bits] push eax lea eax, [ebp-38] push eax push DWORD [edi+8] call yasm_x86__ea_new_reg jmp .L272.L213: sub esp, 4 push DWORD LC0 push DWORD 2025 push DWORD LC1 call [DWORD yasm_internal_error_] add esp, 16.L214: mov edx, DWORD [edi+8] mov DWORD [ebp-52], edx mov ecx, DWORD [ebp-76] mov eax, DWORD [ebx+16+ecx*4] and eax, 31 cmp eax, 21 jne .L200 sub esp, 12 push edx call yasm_x86__ea_set_disponly jmp .L271.L216: sub esp, 8 mov edx, DWORD [ebp-76] mov eax, DWORD [ebx+16+edx*4] and eax, 224 shr eax, 5 push DWORD [size_lookup.1+eax*4] push DWORD [edi+8] call yasm_x86__ea_new_imm.L272: mov DWORD [ebp-52], eax jmp .L271.L220: cmp DWORD [edi+4], 4 jne .L221 mov eax, DWORD [edi+8] mov DWORD [ebp-48], eax mov ecx, DWORD [ebp-76] mov eax, DWORD [ebx+16+ecx*4] and eax, 224 shr eax, 5 mov al, BYTE [size_lookup.1+eax*4] mov BYTE [ebp-37], al jmp .L200.L221: sub esp, 4 push DWORD LC0 push DWORD 2045 jmp .L270.L223: cmp DWORD [edi+4], 4 jne .L224 mov eax, DWORD [edi+8] mov DWORD [ebp-48], eax mov edx, DWORD [ebp-76] mov eax, DWORD [ebx+16+edx*4] and eax, 224 shr eax, 5 mov al, BYTE [size_lookup.1+eax*4] mov BYTE [ebp-37], al mov BYTE [ebp-36], 1 jmp .L200.L224: sub esp, 4 push DWORD LC0 push DWORD 2054 jmp .L270.L226: cmp DWORD [edi+4], 2 jne .L227 mov al, BYTE [edi+8] and eax, 7 mov BYTE [ebp-39], al jmp .L200.L227: cmp DWORD [edi+4], 1 jne .L229 sub esp, 12 push DWORD 2 movzx eax, BYTE [yasm_x86_LTX_mode_bits] push eax push DWORD [edi+8] lea eax, [ebp-39] push eax lea eax, [ebp-38] push eax call yasm_x86__set_rex_from_reg add esp, 32 test eax, eax je .L200.L277: sub esp, 8 push
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -