西安交大汇编实验报告1

西安交大汇编实验报告1

ID:1246674

大小:165.78 KB

页数:8页

时间:2017-11-09

西安交大汇编实验报告1_第1页
西安交大汇编实验报告1_第2页
西安交大汇编实验报告1_第3页
西安交大汇编实验报告1_第4页
西安交大汇编实验报告1_第5页
资源描述:

《西安交大汇编实验报告1》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、汇编语言专题实验报告计算机412140505021杨祚儒80X86汇编语言程序设计课内实验报告班级计算机41实验时间2016年4月4日姓名杨祚儒学号2140505021实验内容概述实验一:熟悉汇编语言实验环境:在书上的例题或者习题所给的程序范例中任选2~3道,练习编译调试,包括:masm,link,debug的过程;实验二:循环程序设计及分支程序设计循环程序设计完成练习中5.15题。数据段中已定义了一个有n个字数据的数组M,试编写一程序求出M中绝对值最大的数,把它放在数据段的M+2n单元中,并将该数的偏移地址存放在M+2(n+1)单元中。在开始的时候我们可以先定义两个变量D

2、ATA和ADDR用来记录最大数的值和地址,然后我们可以在程序的开始就指定几个数让程序进行比较,在我的程序中我选择了1,2,3自然需要比较的数的数量就是3,这个3是我们在程序开始时要赋给一个变量n的,在后面要赋给AX来让CPU知道循环的次数。要进行绝对值大小的比较,就存在将负数化为正数的过程,需要将这个数和0进行比较,如果大于0就是它,小于0的话就要取相反数。还有就是有一个挑选最大值的过程,从第一个数开始我们需要找出一个数将他存入AX中,然后不断地取下一个数和她进行比较,如果下一个数比他大的话就将下一个数的值赋给她,如果小于就继续循环。实验步骤实验一:源代码:DSEGSEGM

3、ENTnEQU3H//假设n=3HMDW1,2,3//对三个变量进行初始化DATADW?//DATA为需要找到的最大值,因为不知道所以定义为?//且在第M+2n单元ADDRDW?//ADDR是需要找的最大值的偏移地址,且在第M+2(n+1)DSEGENDSCSEGSEGMENTMAINPROCFAR//系统把主程序当作DOS调用的一个子程序//DOS内核与主程序不是在同一个段地址内ASSUMECS:CSEG,DS:DSEGSTART:PUSHDS//设置返回DOSSUBAX,AXPUSHAXMOVAX,DSEG//把数据段存储地址DSEG传给DSMOVDSBEGIN:MOV

4、CX,n//循环计数器,将开始时设置的n值给CXLEADI,M//装载有效地址,也是第一个数的地址MOVAX,[DI]//取第一个数MOVADDR,DI//记下第一个数绝对值最大的数的地址CMPAX,0//此数是正数吗?JNSZHEN//是正数,即为绝对值,转去判断下一个数NEGAX//不是正数,取负,即变为其绝对值ZHEN:MOVBX,[DI]CMPBX,0JNSCOMPNEGBX//不是正数,变为其绝对值COMP:CMPAX,BX//判断绝对值大小JAEADDRESSMOVAX,BX//若(AX)<(BX),使(AX)中为绝对值最大的数MOVADDR,DI//记下绝对值

5、最大的数的地址ADDRESS:ADDDI,2//DI作为地址加二来比较下一个数LOOPZHENMOVDATA,AX//已经得到最大数,记下此数,放到DATA中INT3RETMAINENDPCSEGENDSENDSTART利用MASM5进行编译,成功生成相应的OBJ文件,没有报错(如图一所示)图一图二最大值的数值存入到寄存器AX中,在截图中我们可以看到AX=0003,就是我们初始时输入的1,2,3中最大的那一个,偏移地址在DI中DI=0006可以看出因为单位为字所以DI的偏移地址就应该为0006实验二:源代码:DATASSEGMENTCOUNTdb5dup(0);初始化,定义

6、5个0DATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:pushdssubax,axpushaxMOVAX,DATASMOVDS,AXnext:movah,01h;这里输入并将输入的数存入al中,然后将存入;的数和1,2,3,4,5进行比较,然后就可以跳入相应的步骤中int21hcmpal,'1'jzBiJiao1cmpal,'2'jzBiJiao2cmpal,'3'jzBiJiao3cmpal,'4'jzBiJiao4cmpal,'5'jzBiJiao5jmpexitBiJiao1:;如果是1的话的操作movcl,COUN

7、Taddcl,1;cl加一,就是count加1movCOUNT[0],cl;把cl的值存入到count[0]中jmpnextBiJiao2:movbx,1movcl,COUNT[bx]addcl,1movCOUNT[bx],cljmpnextjmpnextBiJiao3:movbx,2movcl,COUNT[bx]addcl,1movCOUNT[bx],cljmpnextBiJiao4:movbx,3movcl,COUNT[bx]addcl,1movCOUNT[bx],cljmpnextBiJiao5:movbx,

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

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

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