福建农林大学汇编实验三分支循环程序设计详解.docx

上传人:b****5 文档编号:28934580 上传时间:2023-07-20 格式:DOCX 页数:10 大小:150.12KB
下载 相关 举报
福建农林大学汇编实验三分支循环程序设计详解.docx_第1页
第1页 / 共10页
福建农林大学汇编实验三分支循环程序设计详解.docx_第2页
第2页 / 共10页
福建农林大学汇编实验三分支循环程序设计详解.docx_第3页
第3页 / 共10页
福建农林大学汇编实验三分支循环程序设计详解.docx_第4页
第4页 / 共10页
福建农林大学汇编实验三分支循环程序设计详解.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

福建农林大学汇编实验三分支循环程序设计详解.docx

《福建农林大学汇编实验三分支循环程序设计详解.docx》由会员分享,可在线阅读,更多相关《福建农林大学汇编实验三分支循环程序设计详解.docx(10页珍藏版)》请在冰豆网上搜索。

福建农林大学汇编实验三分支循环程序设计详解.docx

福建农林大学汇编实验三分支循环程序设计详解

福建农林大学计算机与信息学院实验报告

系:

计算机专业:

计算机科学与技术年级:

2014

姓名学号:

实验室号__计算机号

实验时间:

2016-10-29指导教师签字:

刘庆连成绩:

实验三分支循环程序设计

1.实验目的

(1)学习调试程序,查找逻辑错误;

(2)学习分支语句的编程和调试;

(3)学习循环语句的编程和调试。

2.实验内容

1)有10个数,统计正数的个数,存放在变量M中中。

经过汇编后,形成EXE文件。

在DEBUG中,先用G=0命令执行程序,用D命令查看M单元的内容,会发现结果不正确。

用单步执行命令T=0,单步执行程序,查找程序中的逻辑错误,注意每一次循环中AL寄存器中值的变化是否正确?

(AL寄存器中存放正数的个数)

DSEGSEGMENT

MSGDB4,-2,-6,0,5,67,8,-3,5,6

MDB?

DSEGENDS

CSEGSEGMENT

ASSUMECS:

CSEG,DS:

DSEG

START:

MOVAX,DSEG

MOVDS,AX

MOVCX,10

MOVAL,0

LEASI,MSG

L1:

MOVBL,[SI]

CMPBL,0

JBENEXT

INCAL

NEXT:

INCSI

LOOPL1

MOVM,AL

MOVAL,0

MOVAH,4CH

INT21H

CSEGENDS

ENDSTART

2)数据段中是一组无符号数,将最小数存放在M单元中。

按上题方法查找一处逻辑错误。

DSEGSEGMENT

MSGDB13,15,7,25,24

MDB?

DSEGENDS

CSEGSEGMENT

ASSUMECS:

CSEG,DS:

DSEG

START:

MOVAX,DSEG

MOVDS,AX

MOVCX,4

MOVAL,MSG

MOVSI,OFFSETMSG+1

L1:

CMPAL,[SI]

JBNEXT

MOVAL,[SI]

NEXT:

LOOPL1

MOVM,AL

MOVAL,0

MOVAH,4CH

INT21H

CSEGENDS

ENDSTART

3)编程:

在首地址为BUF开始的内存单元中存有10个字节数,求其中0的个数,并将结果存于RESULT中。

4)编程:

,Ai,Bi为字节型无符号数,分别存于NUM1和NUM2开始的连续存储单元中,结果存于REST单元中。

4.算法描述及实验步骤

实验一:

输入题目代码->保存->运行->调试->观察结果(在Masmforwindows在完成)

实验二:

根据代码实现功能从MSG中输入五个数,AL取第一个数,SI取第二个数,比较AL,SI所取到的数的大小,若ALSI,AL=[SI];将AL的内容输出,则得出输出五个数中的最小数,步骤同实验一

实验三:

依题可编写如下代码指令

实验四:

依题可编写如下代码指令

5.调试过程

6.实验结果

【实验一】

分步执行结果如下

分析:

当将第二个数-2放入放入BL的时候发现数值是FE,转化为十进制数是254,并非是-2的十六进制,原因是JBE命令是用于无符号数的,指令说明如下,要实现有符号数的比较要使用JLE指令

JBE指令说明JLE指令说明

【实验二】

分步执行结果如下

分析:

进入死循环,原因是两个数比较后,SI没有加1,一直停留在13和15的比较中,修改加入INCSI即可,如下图

【实验三】

执行结果如下

分析,BUL中4,-2,-6,0,5,67,8,-3,5,60的个数是1,实验结果与预期一致

【实验四】

结果如下图

分析:

Ai:

10,45和Bi:

8,2的

结果是10*8+45*2=170转化为16进制是AA,有上图可知实验结果和预期一致!

 

7.总结

通过此次实验,能够通过简单调试查找出错误,分步执行发现逻辑错误并改正,掌握并理解了分支语句的运用和循环语句的使用,纸上得来终觉浅,绝知此事要躬行,多多手动敲代码才能理解并掌握汇编的实质!

附录:

【实验三代码】

DSEGSEGMENT

BUFDB4,-2,-6,0,5,67,8,-3,5,6

RESULTDB?

DSEGENDS

CSEGSEGMENT

ASSUMECS:

CSEG,DS:

DSEG

START:

MOVAX,DSEG

MOVDS,AX

MOVCX,10

MOVAL,0

LEASI,BUF

L1:

MOVBL,[SI]

CMPBL,0

JNENEXT

INCAL

NEXT:

INCSI

LOOPL1

MOVRESULT,AL

MOVAL,0

MOVAH,4CH

INT21H

CSEGENDS

ENDSTART

【实验四代码】

DATASEGMENT

NUM1DB10,45

NUM2DB8,2

RESTDW?

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA

MOVDS,AX

LEASI,NUM1

LEADI,NUM2

MOVCX,10

MOVBX,0

L1:

MOVAL,[SI]

MULBYTEPTR[DI]

ADDBX,AX

INCSI

INCDI

LOOPL1

MOVREST,BX

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 纺织轻工业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1