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

📄 disas.asm

📁 开放源码的编译器open watcom 1.6.0版的源代码
💻 ASM
📖 第 1 页 / 共 5 页
字号:

;==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
;
;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 + -