标签:数据段 map can art tar exit invoke 代码 model
.386
.model flat,stdcall
option casemap:none
includelib msvcrt.lib
printf PROTO C :dword, :VARARG
.data ;数据段
num dword 15
szOut byte ‘FIB(%d)=%d‘,0ah,0
.code ;代码段开始
factorial proc C n:dword
cmp n, 2
jbe exitrecurse
mov ebx, n ;EBX=n
dec ebx ;EBX=n-1
invoke factorial, ebx ;EAX=(n-1)!
cmp edx,0
je scan
add ecx,eax
scan:
mov ebx, n
sub ebx,2
invoke factorial,ebx;
add ecx,eax ;EAX=EAX*n
mov edx,0
ret
exitrecurse:
mov eax, 1 ;n=1时,n!=1
ret
factorial endp
start:
mov ecx,0
invoke factorial, num
invoke printf, offset szOut, num, ecx
ret
end start; 代码段结束
标签:数据段 map can art tar exit invoke 代码 model
原文地址:https://www.cnblogs.com/DismalSnail/p/8969339.html