3. 已知A班有30名学生,汇编语言课程成绩以百分制存放在TABLE中,把百分制成绩转换为四级制,A: 90~100分,B: 70~89分,C:60~69分,D:小于60分。结果存放回原TABLE中

题目:1. 已知有NUM个数存放在以BUFFER为首地址的字节存储区中,试统计其中负元素的个数,要求放到COUNT单元,编写完整程序

代码:

data segment
    TABLE db 74,59,88,86,95,65,88,97,64,36,
          ;db 74,64,37,75,47,97,78,46,89,74,
          ;db 66,60,53,58,77,87,45,74,99,100  ;定义成绩
    NUM DW $-TABLE               ;统计成绩个数
data ends
code segment
     assume cs:code,ds:data
start:mov ax,data
      mov ds,ax                  ;设置DS
      mov cx,NUM                 ;设置循环次数
      mov bx,OFFSET TABLE        ;TABLE的偏移地址给bx
L:    mov al,[bx]                ;取bx地址的内容给al
      cmp al,60                  ;将al与60比较
      jb D                       ;小于60则跳转到D
      cmp al,70                  ;若不小于60再和70比较
      jb C                       ;小于70则跳转到C
      cmp al,90                  ;若不小于70再和90比较
      jb B                       ;小于90则跳转到B
      cmp al,100                 ;若不小于90再和100比较
      jbe A                      ;小于等于100跳转到A
D:    mov [bx],44h               ;字符D送原成绩地址
      jmp next
C:    mov [bx],43h               ;字符C送原成绩地址
      jmp next
B:    mov [bx],42h               ;字符B送原成绩地址
      jmp next
A:    mov [bx],41h               ;字符A送原成绩地址
      jmp next                   
next: inc bx                     ;地址加一
      loop L                     ;根据cx的值判断是否继续循环 
      inc bx                     ;为后面用DOS输出字符串做准备
      mov [bx],24h               ;'$'送入字符串末尾,保证输出顺利结束
      mov dx,OFFSET TABLE               ;为清晰显示,把转化成等级后的TABLE输出
      mov ah,09h
      int 21h
      mov ax,4ch                 ;结束
      int 21h
code ends
end start
  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值