汇编(循环、分支、子程序)实验报告.doc

汇编(循环、分支、子程序)实验报告.doc

ID:60759614

大小:11.23 MB

页数:15页

时间:2020-12-14

汇编(循环、分支、子程序)实验报告.doc_第1页
汇编(循环、分支、子程序)实验报告.doc_第2页
汇编(循环、分支、子程序)实验报告.doc_第3页
汇编(循环、分支、子程序)实验报告.doc_第4页
汇编(循环、分支、子程序)实验报告.doc_第5页
资源描述:

《汇编(循环、分支、子程序)实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《汇编语言程序设计》实验报告实验名循环、分支、子程序设计实验室实验楼实验日期2014-06-09一、实验目的及要求1.熟悉命令格式,功能,加强对指令系统的理解2.编写简单循环、选择、子程序的结构程序3.单步跟踪调试,观察寄存器的变化和指令执行的结果二、实验环境硬件环境:一台微型计算机软件环境:windowsxp,debug环境,masm三、实验内容(至少写3个程序)题目一:编写程序,求三个数据中的最大值,并将最大值存入MAX字单元中。1.设计:将x存入ax中,先与y比较,当x大时,x仍存于ax中,

2、再与z比较,如果x大,则将x存入max中;否则将z存入max中。当y大时,将y存入ax中,覆盖较小的x后,与z比较,得出最大数存于max中。2.源程序清单datasegmentxdw1ahydw0ahzdw01hmaxdw?dataends;数据段定义codesegmentassumeds:data,cs:codestart:movax,datamovds,ax;初始化数据段movax,xcmpax,yjgl1;判断x是否大于y,如果x大,则程序跳转到l1;否则顺序执行movax,yjgexitl

3、2:movax,zjmpexitl1:cmpax,z;判断x是否大于z,若z大时,则跳转至l2;否则顺序执行exit段程序jlel2exit:movmax,axmovah,4chint21h;将最大值存于max中codeendsendstart3.调试过程:(1).用masm程序产生mwn4.obj文件,没有错误,如下图:(2).用link程序产生mwn4.exe文件,如下图:(3).用u命令反汇编,查看代码段,数据段所在的内存单元;(4).查看数据段初始数据:(5).初始化数据段(6).x和y比

4、较得:x大于y,将x存入AX中;(7).x和z比较:x大于z,仍存于AX中;(8).输出运行结果:在数据段进行查看,max预先申请的内存单元[0004]中,存放着x的值。题目二:设有十个学生的成绩分别是76,69,84,90,73,88,99,63,100和80分。编制一个子程序统计60~69分,70~79分,80~89分,90~99分,和100分的人数,并分别存放到S6,S7,S8,S9,S10单元中。1.设计:分别为十个成绩、成绩总个数、分段的5个区间申请内存单元,初始化数据段;将AX,BX,

5、CX压栈,保留原始数据。选取第一个成绩,存入AX中,该数据除以10,得到商存入BX,判断商的所属区间,给所属区间加1,继续下一个,循环直到十个全部判断结束,pop出栈,得到属于各区间的成绩个数,程序结束。2.源程序清单dsegsegment;数据段定义numdw76,69,84,90,73,88,99,63,100,80;十个成绩分别存入num为首地址的10个内存单元ndw10s6dw0s7dw0s8dw0s9dw0s10dw0;n=10,n是数据总数,S6~S10分别存储不同成绩段的个数dseg

6、endscodesegment;代码段定义mainprocfarassumecs:code,ds:dsegstart:pushdssubax,axpushaxmovax,dsegmovds,ax;初始化数据段callsub1retmainendpsub1procnear;sub1子程序pushaxpushbxpushcxpushsi;分别将AX,BX,CX,SI压栈,保留数据movsi,0movcx,n;CX赋值为10,数据总数next:movax,num[si];选中第一个数据,存入AX中mov

7、bx,10divblmovbl,al;该数据除以10后将商存入BLcbwsubbx,6;减去6,判断是否为有效的数据范围salbx,1incs6[bx]addsi,2loopnext;得到第一个数为S6区间,S6加1,继续下一个内存单元的数据,直到十个数据都判断结束popsipopcxpopbxpopaxret;将保留的数据出栈sub1endp;子程序结束codeendsendstart;程序结束3.调试过程:(1).用masm程序产生mwn5.obj文件,没有错误,如下图:(2).用link程序

8、产生mwn5.exe文件,如下图:(3).用u命令反汇编,查看代码段,数据段所在的内存单元;(4).查看数据段,初始存入的十个成绩[0000]~[0011]段,[0012]存的数据总数10,而S6~S10这五个内存单元全是0,为申请占用的空间。(5).初始数据段(6).分别将AX,BX,CX,SI压栈,保留初始数据,(7).先选中第一个成绩,将BX赋值10,除以该成绩,将商存于BL;(8).用商减去6得到的差,存于BX并逻辑左移一位;(9)将BX置1后,加1继续循环,知道BX为10

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

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

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