⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eg0418.asm

📁 宏汇编器
💻 ASM
字号:
;eg0418.asm
	include io32.inc
	.data
array	dword 675, 354, -34, 198, 267, 0, 9, 2371, -67, 4257
	.code
start:
	push lengthof array	; 压入数据个数
	push offset array	; 压数组的偏移地址
	call mean	; 调用求平均值子程序,出口参数:EAX=平均值(整数部分)
	add esp,8	; 平衡堆栈(压入了8个字节数据)
	call dispsid	; 显示

	exit 0
mean	proc	; 计算32位有符号数平均值子程序
	push ebp	; 入口参数:顺序压入数据个数和数组偏移地址
	mov ebp,esp	; 出口参数:EAX=平均值
	push ebx	; 保护寄存器
	push ecx
	push edx
	mov ebx,[ebp+8]	; EBX=堆栈中取出的偏移地址
	mov ecx,[ebp+12]	; ECX=堆栈中取出的数据个数
	xor eax,eax	; EAX保存和值
	xor edx,edx	; EDX=指向数组元素
mean1:	add eax,[ebx+edx*4]	; 求和
	add edx,1	; 指向下一个数据
	cmp edx,ecx	; 比较个数
	jb mean1	; 循环
	cdq	; 将累加和EAX符号扩展到EDX
	idiv ecx	; 有符号数除法,EAX=平均值(余数在EDX中)
	pop edx	; 恢复寄存器
	pop ecx
	pop ebx
	pop ebp
	ret
mean	endp

	end start

⌨️ 快捷键说明

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