贺利坚老师汇编实验6(上机)

任务1-字符串比较

如下所示的数据区中给出两个字符串,请比较它们的大小,并将结果记录在result处:相等(E)、前大后小(A)、前小后大(B)

data segment

   str1 db 'Yan Tai',0

   str2 db 'Yan Cheng',0

   result db 0

data ends

任务2-最小字符

在数据区中给出10位评委为歌手的打分,最高分为10分,最低分为0分。

歌手的最终成绩为去掉一个最高分和一个最低分后的平均值(整数部分),请计算并将成绩记录在result处。

data segment

   singer db 8, 8, 8, 6, 10, 6, 6, 7, 7, 6

   result db 0

data ends

请在程序中加入足量的注释

报告内容:带注释的源程序及运行结果如下

任务3-输出学生姓名

给出下的程序段,其中数据区存放了若干学生的姓名,请输入学生序号,在屏幕最上面一行输出对应学生的姓名。

报告内容:带注释的源程序及运行结果如下

assume cs:code, ds:data
data segment
   stu dw stu1,stu2,stu3,stu4,stu5
   stu1 db 'Zhang San',0
   stu2 db 'Li Si',0
   stu3 db 'Wang Wu',0
   stu4 db 'Zhao Liu',0
   stu5 db 'Qian Er',0
data ends
code  segment
start:
      mov ax, data
      mov ds, ax
      mov ax, 0b800h
      mov es, ax
input:
      mov ah,1
      int 21h     ;调用21h中断的第1号功能,从键盘读入字符,AL保存读入字符的ASCII码
      sub al, 30h  ;相减后,al中保存的ASCII变为数字
      ;为0时退出,为1-5时在屏幕最上面一行输出对应人的姓名,输入其他无响应
      ;请在程序中加入足量的注释
      cmp al,0
      je exit    ;Exit at 0.
      cmp al,0
      jb input
      cmp al,5
      ja input  ;Displayed only when it is greater than 0 and less than 5.
      mov bl,al
      mov bh,0
      add bx,bx
      mov bx,stu[bx-2] ;Enter 1 but start with 0 and subtract 2.

      call cls    ;Clear the first line.
      mov si,0
show: mov al,ds:[bx]
      cmp al,0
      je input
      mov es:[si],al
      add si,2       ;Every two writes to video memory.
      inc bx        
      jmp show
exit: mov ah,4ch
      int 21h
cls proc          ;Clear screen subroutine, clear the first line.
      push bx
      push cx
      push es
      mov bx,0b800h
      mov es,bx
      mov bx,0
      mov cx,80
sub1s:
      mov byte ptr es:[bx],' '
      add bx,2
      loop sub1s
      pop es
      pop cx
      pop bx
      ret
cls endp
code  ends
      end start

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值