汇编 分支循环程序设计

汇编 分支循环程序设计

ID:18177573

大小:235.00 KB

页数:12页

时间:2018-09-15

汇编  分支循环程序设计_第1页
汇编  分支循环程序设计_第2页
汇编  分支循环程序设计_第3页
汇编  分支循环程序设计_第4页
汇编  分支循环程序设计_第5页
资源描述:

《汇编 分支循环程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、汇编实验系:专业:计算机科学与技术年级:姓名:学号:实验课程:汇编语言实验室号:___实验设备号:实验时间:2011.11.15指导教师签字:成绩:分支循环程序设计1.实验目的和要求1、学习调试程序,查找逻辑错误;2、学习分支语句的编程和调试;3、学习循环语句的编程和调试。2.实验环境实验的硬件环境是:IBM—PC机及其兼容机实验的软件环境是:操作系统:DOS2.0以上;调试程序:DEBUG.COM;文本编程程序:EDIT.EXE、WPS.EXE;宏汇编程序:MASM.EXE(或ASM.EXE);连接装配程序:LINK.EXE;交叉引用程序:CR

2、EF.EXE(可有可无)。3.实验内容及实验数据记录1.有10个数,统计正数的个数,存放在变量M中中。经过汇编后,形成EXE文件。在DEBUG中,先用G=0命令执行程序,用D命令查看M单元的内容,会发现结果不正确。用单步执行命令T=0,单步执行程序,查找程序中的逻辑错误,注意每一次循环中AL寄存器中值的变化是否正确。(AL寄存器中存放正数的个数)DSEGSEGMENTMSGDB4,-2,-6,0,5,67,8,-3,5,6MDB?DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGSTART:MOVAX,DSEGMOV

3、DS,AXMOVCX,10MOVAL,0LEASI,MSGL1:MOVBL,[SI]CMPBL,0JBENEXTINCALNEXT:INCSILOOPL1MOVM,ALMOVAL,0MOVAH,4CHINT21HCSEGENDSENDSTART1.数据段中是一组无符号数,将最小数存放在M单元中。按上题方法查找一处逻辑错误。DSEGSEGMENTMSGDB13,15,7,25,24MDB?DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGSTART:MOVAX,DSEGMOVDS,AXMOVCX,4MOVAL,MSGM

4、OVSI,OFFSETMSG+1L1:CMPAL,[SI]JBNEXTMOVAL,[SI]NEXT:LOOPL1MOVM,ALMOVAL,0MOVAH,4CHINT21HCSEGENDSENDSTART1.编程:在首地址为BUF开始的内存单元中存有10个字节数,求其中0的个数,并将结果存于RESULT中。2.编程:,Ai,Bi为字节型无符号数,分别存于NUM1和NUM2开始的连续存储单元中,结果存于REST单元中。4.算法描述及实验步骤1、1)在debug中生成1.exe,用g命令执行程序。2)使用d命令,用d命令查看M单元内容。3)单步执行t命

5、令。2、1)在debug中生成2.exe,用g命令执行程序。2)使用d命令,用d命令查看M单元内容。3)单步执行t命令。3、分析问题:①将2,5,0,-2,4,0,0,-1,8,0十个字节数存放在内存单元中,将0的个数存放在RESULT中。②用“LEASI,MSG”指令取MSG的偏移地址到SI。③把偏移地址SI中的内容存到BL中,利用“CMPBL,0”指令进行比较。不相等则跳转到NEXT即执行“JNENEXT”。④最后将AL送到RESULT中。⑤流程图如下:开始MSG→SI数据→BLYNBL=0SI+1AL+1更改循环次数YN循环结束AL→RES

6、ULT结束4、①Ai,Bi为字节型符号数,设Ai,Bi各有八个数,为12,34,56,78,90,02,37,81和9,76,54,32,10,01,02,03,分别存放于NUML1和NUML2开始的连续存储单元中。计算,结果存于REST单元中。②数据的存储,把NUML1和NUML2的偏移地址分别移到SI和DI中。③执行L1,把SI的内容移到AL,呈一字节类型的DI中的内容,把AX和BX相加,结果存于BX,DI、SI各加一,循环L1直至结束。④最后将BX送到REST中。⑤流程图如下:开始NUML1→SINUML2→DISI→ALAL*DL→DIA

7、X*BX→BXDI+1SI+1更改循环次数NY循环结束BX→RESULT结束5.调试过程1、修改前:修改后:2、修改前:修改后:3、修改前:修改后:4、修改前:修改后:6.实验结果1、修改前:运行G命令后用D命令查看内容,由上图结果可知,显示为:“09H”,与实际值不符,结果出错。查找原因可知,“JBENEXT”命令是无符号数的比较,而数据中存在“-2,-6,-3”的带符号数。因此,把“JBENEXT”改为“JLENEXT”。修改后:(把程序中的JBE改为JLE)显示结果为:“06H”,与题意相符。2、修改前:运行G命令后用D命令查看内容,显示结

8、果为:“0DH”,不是输出最小数,结果出错。可能是由于指针无跳转,只是一直在循环执行OD和OF两个数的比较。因此在NEXT语句开始部分添

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。