【汇编语言实战】统计个数(创新版)

本文详细描述了如何使用C语言和汇编语言实现程序,统计内存中10个正整数中分别小于60、大于等于60且小于80以及大于等于80的数的个数。

内存中有10个分布在0至100内的正整数, 求小于60的数的个数num1,大于或等于60且小于80的数的个数num2,大于或等于80且小于100的数的个数num3

C语言描述该程序流程:

#include <stdio.h>
int main()
{
	int a[]={1, 20, 95, 32, 60, 70, 87, 56, 93, 99};
	int num1=0,num2=0,num3=0;
	for(int i=0;i<10;i++)
	{
		if(a[i]<60)
		{
			num1++;
		}
		else if(a[i]<80)
		{
			num2++;
		}
		else
		{
			num3++;
		}
	}
	printf("%d\n%d\n%d",num1,num2,num3);
}

汇编语言:

include irvine32.inc
.data
numbers dword 1, 20, 95, 32, 60, 70, 87, 56, 93, 99
num1 dword 0
num2 dword 0
num3 dword 0
count dword 10 ;需比较十次
.code
main proc
mov esi,offset numbers

L1:
cmp count,0
jz output
mov ebx,[esi]
cmp ebx,60
jl smallerthan60
cmp ebx,80
jl smallerthan80
inc num3
jmp nextnum

smallerthan60:
inc num1
jmp nextnum

smallerthan80:
inc num2
jmp nextnum

nextnum:
dec count
add esi,4
jmp L1

output:
mov eax,num1
call writeint
call crlf
mov eax,num2
call writeint
call crlf
mov eax,num3
call writeint

main endp
end main

运行结果:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋说

感谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值