百度首页 | 百度空间
 
查看文章
 
循环结构程序设计
2008年05月15日 星期四 20:37

一、实验目的和要求
掌握循环语句LOOP语句、条件转移、无条件转移语句的使用等。
二、实验内容和原理
设在以EXAMSTU为首址的存区中依次存放着某考区245个理科生的七门成绩,现要统计每个考生的总成绩,并将其存放在该考生单科成绩之后的两个单元。试编出完成这一任务的程序。
三、实验环境
实验室提供硬件环境。软件环境:WINDOWS98/2000、MASM.EXE、LINK.EXE等。
四、算法描述及实验步骤
一个循环结构常常难以解决实际应用问题,所以引入了多重循环。这些循环是一层套一层的,因此又称为循环的嵌套。
(1)内层循环必须完全包含于外层循环内,不允许循环结构交叉。
(2)转移指令只能从循环结构内转出或可在同层循环内转移,而不能从一 个循环结          构外转入该循环结构内。

绘制流程图如下所示:

1、 启动WINDOWS记事本,编写汇编源代码。
2、 编写代码:
3、调试、编译:
编译、连接、调试运行,并启动DEBUG调试源代码。
C:\ masm chp3.asm<CR>
C:\ link chp3.obj<CR>
-d: 0<CR>
结果如下:

五、实验结果
结果正确、编译、保存,达到实验要求。
六、总结
通过本次实验,让我们掌握了汇编语言的循环程序设计、并学会了如何将运行结果在终端上显示的方法,虽然这种方法有点比较麻烦,不过至少学会了一种方法、源代码的编写、编译、连接、调试等的方法。
附录:
DATA SEGMENT
     EXAMSTU DB     01,75,82,84,92,78,49,85,00,00
                 DB     02,65,78,90,85,61,42,87,00,00
                 DB     03,68,73,86,84,62,47,85,00,00
                 DB     04,65,74,85,83,74,46,89,00,00
                 DB     05,68,77,98,84,60,46,82,00,00
        DATA ENDS
        CODE SEGMENT
              ASSUME    CS:CODE,DS:DATA
              MOV       AX,DATA
              MOV       DS,AX
      BEGIN: LEA       SI,EXAMSTU ;设置地址指针
              MOV       BL,5        ;设置外循环计数器
      LOOP2: MOV       CX,7        ;设置内循环计数器
              XOR       AX,AX
              INC       SI          ;跳过准考证号
       LOP1: ADD       AL,[SI]     ;累加
              ADC       AH,0
              INC       SI          ;修改地址指针
              LOOP      LOP1        ;CX-1<>0,则继续累加
              MOV       WORD PTR[SI],AX         ;存总分
              INC       SI
              INC       SI
              DEC       BL
              JNZ       LOOP2       ;BL-1<>0则求下一个考生总分
              MOV       AH,4CH      ;以下两条指令是利用DOS          INT   21H ;功能调用,正常终止程序
             CODE ENDS
               END       BEGIN


类别:汇编语言 | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码:
 

     

©2008 Baidu