📄 disas.asm
字号:
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
;
;Process word version of ESC 1 code 000.
;
ESC_1_000w proc near
mov al,1
jmp ESC_1_000
ESC_1_000w endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_1_000d proc near
mov al,2
jmp ESC_1_000
ESC_1_000d endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_1_000 proc near
;
;Copy the FLD bit streight through.
;
push esi
mov esi,offset T_FLD
@@0: movsb
cmp b[esi-1],0
jnz @@0
pop esi
dec edi
;
push eax
call get_modregrm ;find out more about the instruction.
pop eax
cmp ch,3 ;which for of the instruction?
jz @@1
mov PointType,offset T_DWORD
mov eaMode,4
call out_ea
jmp @@9
;
@@1: ;Doing ST(i)
;
mov es:b[edi],"s"
inc edi
mov es:b[edi],"t"
inc edi
or bl,bl
jz @@3
mov es:b[edi],"("
inc edi
mov al,bl ;get register number.
mov ecx,1
call Bin2Hex
mov es:b[edi],")"
inc edi
@@3: mov es:b[edi],0
;
@@9: ret
ESC_1_000 endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
;
;Process word version of ESC 1 code 001.
;
ESC_1_001w proc near
mov al,1
jmp ESC_1_001
ESC_1_001w endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_1_001d proc near
mov al,2
jmp ESC_1_001
ESC_1_001d endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_1_001 proc near
push eax
call get_modregrm ;find out more about the instruction.
pop eax
;
;Copy the FXCH bit streight through.
;
push esi
mov esi,offset T_FXCH
@@0: movsb
cmp b[esi-1],0
jnz @@0
pop esi
dec edi
cmp bl,1
jz @@3
;
;Doing ST(i)
;
mov es:b[edi],"s"
inc edi
mov es:b[edi],"t"
inc edi
or bl,bl
jz @@3
mov es:b[edi],"("
inc edi
mov al,bl ;get register number.
mov ecx,1
call Bin2Hex
mov es:b[edi],")"
inc edi
@@3: mov es:b[edi],0
;
@@9: ret
ESC_1_001 endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
;
;Process word version of ESC 1 code 010.
;
ESC_1_010w proc near
mov al,1
jmp ESC_1_010
ESC_1_010w endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_1_010d proc near
mov al,2
jmp ESC_1_010
ESC_1_010d endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_1_010 proc near
push eax
call get_modregrm ;find out more about the instruction.
pop eax
cmp ch,3
jnz @@1
;
;Do FNOP
;
push esi
mov esi,offset T_FNOP
@@0: movsb
cmp b[esi-1],0
jnz @@0
pop esi
dec edi
jmp @@9
;
@@1: ;Do FST
;
push esi
mov esi,offset T_FST
@@2: movsb
cmp b[esi-1],0
jnz @@2
pop esi
dec edi
mov PointType,offset T_DWORD
mov eaMode,4
call out_ea
;
@@9: ret
ESC_1_010 endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
;
;Process word version of ESC 1 code 011.
;
ESC_1_011w proc near
mov al,1
jmp ESC_1_011
ESC_1_011w endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_1_011d proc near
mov al,2
jmp ESC_1_011
ESC_1_011d endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_1_011 proc near
push eax
call get_modregrm ;find out more about the instruction.
pop eax
;
;Do FSTP
;
push esi
mov esi,offset T_FSTP
@@2: movsb
cmp b[esi-1],0
jnz @@2
pop esi
dec edi
mov PointType,offset T_DWORD
mov eaMode,4
call out_ea
;
@@9: ret
ESC_1_011 endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
;
;Process word version of ESC 1 code 100.
;
ESC_1_100w proc near
mov al,1
jmp ESC_1_100
ESC_1_100w endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_1_100d proc near
mov al,2
jmp ESC_1_100
ESC_1_100d endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_1_100 proc near
push eax
call get_modregrm ;find out more about the instruction.
pop eax
;
cmp ch,3 ;mm+r/m?
jnz @@1
push esi
mov esi,offset T_FCHS
or bl,bl
jz @@0
mov esi,offset T_FABS
cmp bl,1
jz @@0
mov esi,offset T_FTST
cmp bl,4
jz @@0
mov esi,offset T_FXAM
cmp bl,5
jz @@0
mov esi,offset T_INV
@@0: movsb
cmp b[esi-1],0
jnz @@0
pop esi
dec edi
jmp @@9
;
@@1: ;Do FLDENV
;
push esi
mov esi,offset T_FLDENV
@@2: movsb
cmp b[esi-1],0
jnz @@2
pop esi
dec edi
call out_ea
;
@@9: ret
ESC_1_100 endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
;
;Process word version of ESC 1 code 101.
;
ESC_1_101w proc near
mov al,1
jmp ESC_1_101
ESC_1_101w endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_1_101d proc near
mov al,2
jmp ESC_1_101
ESC_1_101d endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_1_101 proc near
push eax
call get_modregrm ;find out more about the instruction.
pop eax
;
cmp ch,3
jz @@1
;
;Do FLDCW
;
push esi
mov esi,offset T_FLDCW
@@0: movsb
cmp b[esi-1],0
jnz @@0
pop esi
dec edi
mov PointType,offset T_WORD
mov eaMode,2
call out_ea
jmp @@9
;
@@1: push esi
movzx ebx,bl
mov esi,[T_FLD_Table+ebx*4]
@@2: movsb
cmp b[esi-1],0
jnz @@2
pop esi
dec edi
;
@@9: ret
ESC_1_101 endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
;
;Process word version of ESC 1 code 110.
;
ESC_1_110w proc near
mov al,1
jmp ESC_1_110
ESC_1_110w endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_1_110d proc near
mov al,2
jmp ESC_1_110
ESC_1_110d endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_1_110 proc near
push eax
call get_modregrm ;find out more about the instruction.
pop eax
;
cmp ch,3
jz @@1
;
;Do FNSTENV
;
push esi
mov esi,offset T_FNSTENV
cmp FWait_Waiting,0
jz @@0
mov esi,offset T_FSTENV
@@0: movsb
cmp b[esi-1],0
jnz @@0
pop esi
dec edi
call out_ea
jmp @@9
;
@@1: push esi
movzx ebx,bl
mov esi,[T_E110_Table+ebx*4]
@@2: movsb
cmp b[esi-1],0
jnz @@2
pop esi
dec edi
;
@@9: ret
ESC_1_110 endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
;
;Process word version of ESC 1 code 101.
;
ESC_1_111w proc near
mov al,1
jmp ESC_1_111
ESC_1_111w endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_1_111d proc near
mov al,2
jmp ESC_1_111
ESC_1_111d endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_1_111 proc near
push eax
call get_modregrm ;find out more about the instruction.
pop eax
;
cmp ch,3
jz @@1
;
;Do FNSTCW
;
push esi
mov esi,offset T_FNSTCW
cmp FWait_Waiting,0
jz @@0
mov esi,offset T_FSTCW
@@0: movsb
cmp b[esi-1],0
jnz @@0
pop esi
dec edi
mov PointType,offset T_WORD
mov eaMode,2
call out_ea
jmp @@9
;
@@1: push esi
movzx ebx,bl
mov esi,[T_E111_Table+ebx*4]
@@2: movsb
cmp b[esi-1],0
jnz @@2
pop esi
dec edi
;
@@9: ret
ESC_1_111 endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
;
;Process word version of ESC 2 code 000.
;
ESC_2_000w proc near
mov al,1
jmp ESC_2_000
ESC_2_000w endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_2_000d proc near
mov al,2
jmp ESC_2_000
ESC_2_000d endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_2_000 proc near
push esi
mov esi,offset T_FIADD
@@0: movsb
cmp b[esi-1],0
jnz @@0
pop esi
dec edi
push eax
call get_modregrm ;find out more about the instruction.
pop eax
mov PointType,offset T_DWORD
mov eaMode,4
call out_ea
ret
ESC_2_000 endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
;
;Process word version of ESC 2 code 001.
;
ESC_2_001w proc near
mov al,1
jmp ESC_2_001
ESC_2_001w endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_2_001d proc near
mov al,2
jmp ESC_2_001
ESC_2_001d endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_2_001 proc near
push esi
mov esi,offset T_FIMUL
@@0: movsb
cmp b[esi-1],0
jnz @@0
pop esi
dec edi
push eax
call get_modregrm ;find out more about the instruction.
pop eax
mov PointType,offset T_DWORD
mov eaMode,4
call out_ea
ret
ESC_2_001 endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
;
;Process word version of ESC 2 code 010.
;
ESC_2_010w proc near
mov al,1
jmp ESC_2_010
ESC_2_010w endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_2_010d proc near
mov al,2
jmp ESC_2_010
ESC_2_010d endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_2_010 proc near
push esi
mov esi,offset T_FICOM
@@0: movsb
cmp b[esi-1],0
jnz @@0
pop esi
dec edi
push eax
call get_modregrm ;find out more about the instruction.
pop eax
mov PointType,offset T_DWORD
mov eaMode,4
call out_ea
ret
ESC_2_010 endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
;
;Process word version of ESC 2 code 011.
;
ESC_2_011w proc near
mov al,1
jmp ESC_2_011
ESC_2_011w endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_2_011d proc near
mov al,2
jmp ESC_2_011
ESC_2_011d endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_2_011 proc near
push esi
mov esi,offset T_FICOMP
@@0: movsb
cmp b[esi-1],0
jnz @@0
pop esi
dec edi
push eax
call get_modregrm ;find out more about the instruction.
pop eax
mov PointType,offset T_DWORD
mov eaMode,4
call out_ea
ret
ESC_2_011 endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
;
;Process word version of ESC 2 code 100.
;
ESC_2_100w proc near
mov al,1
jmp ESC_2_100
ESC_2_100w endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_2_100d proc near
mov al,2
jmp ESC_2_100
ESC_2_100d endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_2_100 proc near
push esi
mov esi,offset T_FISUB
@@0: movsb
cmp b[esi-1],0
jnz @@0
pop esi
dec edi
push eax
call get_modregrm ;find out more about the instruction.
pop eax
mov PointType,offset T_DWORD
mov eaMode,4
call out_ea
ret
ESC_2_100 endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
;
;Process word version of ESC 2 code 101.
;
ESC_2_101w proc near
mov al,1
jmp ESC_2_101
ESC_2_101w endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_2_101d proc near
mov al,2
jmp ESC_2_101
ESC_2_101d endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_2_101 proc near
push eax
call get_modregrm ;find out more about the instruction.
pop eax
cmp ch,3
jnz @@2
push esi
mov esi,offset T_FUCOMPP
@@1: movsb
cmp b[esi-1],0
jnz @@1
pop esi
dec edi
jmp @@9
;
@@2: push esi
mov esi,offset T_FISUBR
@@0: movsb
cmp b[esi-1],0
jnz @@0
pop esi
dec edi
mov PointType,offset T_DWORD
mov eaMode,4
call out_ea
@@9: ret
ESC_2_101 endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
;
;Process word version of ESC 2 code 110.
;
ESC_2_110w proc near
mov al,1
jmp ESC_2_110
ESC_2_110w endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_2_110d proc near
mov al,2
jmp ESC_2_110
ESC_2_110d endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_2_110 proc near
push esi
mov esi,offset T_FIDIV
@@0: movsb
cmp b[esi-1],0
jnz @@0
pop esi
dec edi
push eax
call get_modregrm ;find out more about the instruction.
pop eax
mov PointType,offset T_DWORD
mov eaMode,4
call out_ea
ret
ESC_2_110 endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
;
;Process word version of ESC 2 code 111.
;
ESC_2_111w proc near
mov al,1
jmp ESC_2_111
ESC_2_111w endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_2_111d proc near
mov al,2
jmp ESC_2_111
ESC_2_111d endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
ESC_2_111 proc near
push esi
mov esi,offset T_FIDIVR
@@0: movsb
cmp b[esi-1],0
jnz @@0
pop esi
dec edi
push eax
call get_modregrm ;find out more about the instruction.
pop eax
mov PointType,offset T_DWORD
mov eaMode,4
call out_ea
ret
ESC_2_111 endp
;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
;
;Process word version of ESC 3 code 000.
;
ESC_3_000w proc near
mov al,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -