ex2.asm

来自「简单实现C--语言的编译器」· 汇编 代码 · 共 66 行

ASM
66
字号
	.386p
	model flat

extrn	_printf:near

	.code
gcd	proc	near
	push      ebp
	mov       ebp,esp
	sub	  esp, 8
__@3:
	mov	edx , dword ptr [ebp-4] ; f
	cmp	edx , dword ptr [ebp-8] ; g
	jne	short	__@4
	mov	edx , dword ptr [ebp-4] ; f
	cmp	edx , dword ptr [ebp-8] ; g
	jge	short	__@1
    	mov    eax, dword ptr [ebp-8];g
	sub	eax, dword ptr [ebp-4] ;f
	mov	dword ptr [ebp-4], eax	;__t1
	mov	edx ,dword ptr [ebp-4] ; __t1
	mov	dword ptr [ebp-8] , edx ; g
__@1:
	mov	edx , dword ptr [ebp-8] ; g
	cmp	edx , dword ptr [ebp-4] ; f
	jge	short	__@2
    	mov    eax, dword ptr [ebp-4];f
	sub	eax, dword ptr [ebp-8] ;g
	mov	dword ptr [ebp-8], eax	;__t2
	mov	edx ,dword ptr [ebp-8] ; __t2
	mov	dword ptr [ebp-4] , edx ; f
__@2:
	jmp	__@3
__@4:

	mov	esp,ebp
	pop	ebp
	ret
gcd	endp

_main	proc	near
	push      ebp
	mov       ebp,esp
	sub	  esp, 0
	push       16
	push       24
	call	gcd
	add	esp,8
	push	dword ptr [ebp-4] ; f
	push	  offset s@
	call	_printf
	pop	ecx
	add	esp,8

	mov	esp,ebp
	pop	ebp
	ret
_main	endp

	.data
s@	label	byte
	db	"gcd(24,16)=%d",10,0

	public	_main
	end

⌨️ 快捷键说明

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