win32-md.asm

来自「kaffe是一个java虚拟机的源代码。里面包含了一些java例程和标准的jav」· 汇编 代码 · 共 100 行

ASM
100
字号
	TITLE	WIN32_ASM	.486P.model FLAT_TEXT SEGMENTPUBLIC _i386_do_fixup_trampolineEXTRN _soft_fixup_trampoline:NEAR_i386_do_fixup_trampoline PROC NEAR	call	_soft_fixup_trampoline	pop	ecx	jmp	eax_i386_do_fixup_trampoline ENDPPUBLIC __currentFrame__currentFrame PROC NEAR	mov eax,ebp	ret__currentFrame ENDPPUBLIC __callException__callException PROC NEAR	pop eax		; Throw away return value	pop ebp		; Get new frame	pop edx		; Get jump address	pop eax		; Get return argument	jmp edx		; Jump__callException ENDPPUBLIC __sysdepCallMethod__sysdepCallMethod PROC NEAR	push edi	push ebp	mov ebp,esp	mov edi,dword ptr [ebp+12]	mov eax,dword ptr [edi+12]	; nrargs	mov edx,dword ptr [edi+4]	; args	lea ecx,dword ptr [edi+22]	; callsizel1:	cmp eax,0	je l3	dec eax	cmp byte ptr[ecx+eax],0	je l1	cmp byte ptr[ecx+eax],1	je l2	push dword ptr [edx+eax*8+4]l2:	push dword ptr [edx+eax*8]	jmp l1l3:	call dword ptr [edi]		; function	mov edi, dword ptr [ebp+12]	mov edx, dword ptr [edi+8]	; ret	mov cl,[edi+21]			; rettype	cmp cl,46h	jne l4	fstp dword ptr [edx]	jmp l6l4:	cmp cl,44h	jne l5	fstp qword ptr [edx]	jmp l6l5:	mov dword ptr [edx],eax	cmp cl,4Ah	jne l6	mov dword ptr [4+edx],edxl6:	leave	pop edi	ret__sysdepCallMethod ENDPPUBLIC __compareAndExchange__compareAndExchange PROC NEAR	mov ecx,dword ptr [esp+4]	; addr	mov eax,dword ptr [esp+8]	; old	mov edx,dword ptr [esp+12]	; new	lock cmpxchg dword ptr [ecx],edx	je l7	mov eax,0	retl7:	mov eax,1	ret__compareAndExchange ENDP_TEXT ENDSEND

⌨️ 快捷键说明

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