x86汇编_利用子过程做整数数组求和_笔记_21

在C++和java写过的利用循环求整数数组之和,在汇编中也很容易实现。

现在创建一个专用于统计整数数组各个元素之和的子过程,如下arraysum子过程的设计规范,要求将数组开始位置的地址放入esi寄存器,将数组元素数量放入ecx,然后调用arraysum过程,就可以做数组元素合计,合计结果放在eax寄存器。

.386
.model flat,stdcall
.stack 4096
ExitProcess proto,dwExitCode:dword

.data
thearray dword 1000h, 1000h, 1000h, 1000h, 1000h, 1000h, 1000h, 1000h
theresult dword 0

.code
main proc
	push esi
	push ecx
	nop
	mov esi, offset thearray  ;数组首地址。
	mov ecx, lengthof thearray   ;数组的元素数量。
	call arraysum
	mov theresult, eax
	pop ecx
	pop esi
	invoke ExitProcess,0
main endp

arraysum proc
	mov eax, 0
	L1: add eax, [esi]
	add esi, type dword  ;可以自动返回dword的字节数量:4,因为thearray是4字节数组。
	loop L1
	ret	
arraysum endp

end main

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值