100名同学AS成绩统计(汇编语言)

题目: 

下面提供了100名同学AS课程的成绩,请编程序统计其中90~100、60~89、60以下者各有多少人?并把结果连续存放到自RESUT开始的单元中。

 data segment

   buf db 85, 72, 79, 90, 79, 54, 63, 66, 83, 79, 71, 77, 77, 65, 89, 93

       db 69, 96, 72, 98, 60, 78, 69, 68, 80, 65, 91, 64, 90, 90, 64, 90

       db 99, 55, 84, 56, 80, 54, 55, 66, 53, 54, 83, 61, 52, 92, 66, 51

       db 95, 81, 51, 100, 70, 65, 50, 74, 91, 57, 95, 66, 54, 50, 73, 59

       db 78, 80, 92, 78, 89, 78, 99, 100, 82, 92, 59, 71, 74, 81, 93, 74

       db 98, 57, 57, 96, 76, 79, 57, 67, 52, 84, 87, 54, 67, 72, 59, 75

       db 64, 89, 77, 80

 resut db 3 dup(0)

data ends

流程图:主要是分支结构(类似于C语言中的if···else···)和循环结构

代码如下:

assume cs:code,ds:data
data segment
   buf db 85, 72, 79, 90, 79, 54, 63, 66, 83, 79, 71, 77, 77, 65, 89, 93
       db 69, 96, 72, 98, 60, 78, 69, 68, 80, 65, 91, 64, 90, 90, 64, 90
       db 99, 55, 84, 56, 80, 54, 55, 66, 53, 54, 83, 61, 52, 92, 66, 51
       db 95, 81, 51, 100, 70, 65, 50, 74, 91, 57, 95, 66, 54, 50, 73, 59
       db 78, 80, 92, 78, 89, 78, 99, 100, 82, 92, 59, 71, 74, 81, 93, 74
       db 98, 57, 57, 96, 76, 79, 57, 67, 52, 84, 87, 54, 67, 72, 59, 75
       db 64, 89, 77, 80
resut db 3 dup(0) 
data ends
code segment
start:
      mov ax,data
      mov ds,ax
      mov di,offset resut;获得标号处的偏移地址
      mov si,0;数据区起始偏移地址
      mov cx,100;循环次数
      mov bh,90
      mov bl,60
      mov ax,0
      mov dx,0
   s: mov ah,[si];把数据区的数据存入ah
      cmp ah,bh
      jb n1 ;若ah小于bh(90),则跳转  
      add al,1;否则al加一
      jmp over
  n1: cmp ah,bl
      jb n2 ;若ah小于bl(60),则跳转
      add dh,1;否则,dh加一
      jmp over
  n2: add dl,1;若ah小于bl(60),dl加一
      jmp over
over: inc si
      loop s
      mov [di],al;把al记录90~100的数的个数存入resut处的第一个数据区
      mov [di+1],dh;把dh记录60~89的数的个数存入resut处第二个数据区
      mov [di+2],dl;把al记录60以下的数的个数存入resut处第三个数据区
      mov ax,4c00h
      int 21h
code ends
end start

DOSBox运行结果:90~100:21人   60~89:57人  60以下:22人

蜂蜜抽子

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值