【汇编实现(使用子程序)求1到n的之和】


;// vs15-17IO.inc declarations for standard I/O ,console I/O Function prototypes
;// Copyright (c) FCL 2010. All rights reserved. 
;// 2018-04-08
.686
.MODEL flat, stdcall
option casemap : none

;//========================================
includelib ucrt.lib
includelib legacy_stdio_definitions.lib
;//========================================

;//  Function prototypes 
 
   printf	 PROTO C : dword,:vararg  ;vararg参数:变参,参数个数不确定
   scanf	 PROTO C : dword,:vararg  ;dword参数 :格式描述串的有效地址。
   _getch    PROTO C : vararg         ;注意:所有的参数都是dword型!
   _kbhit    PROTO C : vararg
   puts	 PROTO C : dword,:vararg  ;vararg参数:变参,参数个数不确定
   gets	 PROTO C : dword,:vararg



.data
     Hello byte "hello, gensokyo",10, 0
	 format byte '%d',0,10
.code
digui proc
	push ebp
	mov ebp,esp
	mov ecx,dword ptr[ebp + 8]
	cmp ecx,1;if(n>1)
	jne next;return digui(n-1)
	mov eax,0
	jmp enddigui
next:
	dec ecx
	push ecx
	call digui
	pop ebx
	add eax,ebx
enddigui:
	add eax,ecx
	pop ebp
	ret
 digui endp
main proc
   pushad

   push 7
	call digui
	invoke printf,offset format,eax
	pop eax
	popad
	ret
 main endp
 end main

结果:

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值