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

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

内存中有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



运行结果:


目录
相关文章
|
3月前
|
C语言
【汇编语言实战】实现九九乘法表
【汇编语言实战】实现九九乘法表
30 2
|
3月前
|
C语言
【汇编语言实战】输入一个无符号整数求其逆序
【汇编语言实战】输入一个无符号整数求其逆序
26 2
|
3月前
|
C语言
【汇编语言实战】两个32位数的相加运算
【汇编语言实战】两个32位数的相加运算
35 2
|
3月前
|
C语言
【汇编语言实战】八皇后问题
【汇编语言实战】八皇后问题
31 2
|
3月前
|
C语言
【汇编语言实战】实现输出集合{1,2,...,n}全排列
【汇编语言实战】实现输出集合{1,2,...,n}全排列
29 1
|
3月前
|
C语言
【汇编语言实战】给定一个句子,将大写字母变为小写
【汇编语言实战】给定一个句子,将大写字母变为小写
36 1
|
3月前
|
C语言
【汇编语言实战】最小公倍数和最大公约数
【汇编语言实战】最小公倍数和最大公约数
57 1
|
3月前
|
C语言
【汇编语言实战】二分查找
【汇编语言实战】二分查找
29 1
|
3月前
|
C语言
【汇编语言实战】正整数的素数分解
【汇编语言实战】正整数的素数分解
28 1
|
3月前
|
C语言
【汇编语言实战】冒泡排序
【汇编语言实战】冒泡排序
33 1
【汇编语言实战】冒泡排序