中南大学汇编

上传人:gg****m 文档编号:230607284 上传时间:2021-12-27 格式:DOCX 页数:19 大小:238.53KB
返回 下载 相关 举报
中南大学汇编_第1页
第1页 / 共19页
中南大学汇编_第2页
第2页 / 共19页
中南大学汇编_第3页
第3页 / 共19页
中南大学汇编_第4页
第4页 / 共19页
中南大学汇编_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《中南大学汇编》由会员分享,可在线阅读,更多相关《中南大学汇编(19页珍藏版)》请在金锄头文库上搜索。

1、中南大学汇编实验报告实验一 求Fibonacci递归数一、实验目的进一步掌握子程序的设计方法,熟悉递归程序的设计二、实验要求掌握递归程序的调用、返回及入口、出口参数的传递方法。三、实验内容程序接收由用户键入的数N,根据给定的N值,计算Fibonacci数。Fibonacci数的定义如下:FTB (1) =1FTB (2) =1FIB (N) =FIB (N-2) +FIB (N-l)N=3实验环境Masm For Wi ndows 2012五.实验方法程序接收用户输入的1小于等于50的十进制正整数,存入输入缓冲区后再 把它转化为十六进制数,存入内存单元N中。调用FTB函数求Fibonacci数

2、,结 果高位存在RESULT2H,低位存在RESULT2L,最后调用OUTPUT函数将结果以十进 制的形式显示出来。程序亮点在于将结果转换为十进制时采用了除10取余的方 法,对于高位通过在适当的位数加65536 (ADD65536)的方式巧妙地将乘法转化为 加法。六实验步骤1 显示提示,并接受一个数字N;2调用fib递归得到结果存入内存;3. 调用显示10进制函数OUTPUTo输入数据36(十进制)输出数据14930352(10进制) 正确。lease input a nunber:N=36 IB=14930352Press any key to continue七实验结论本实验使我进一步掌握

3、子程序的设计方法,熟悉递归程序的设计,丰富了我写 汇编程序的经验。实验二冒泡排序算法的程序实现一、实验目的1. 掌握循环程序的设计方法;2. 了解循环结构在程序中的重要作用起泡排序程序。二、实验原理及基本技术路线图(方框原理图)循环结构分DO_WHILE和DCLUNTIL两种,无论使用哪种循环结构,循环程序一般应包括以下儿部分:1循环初始化。它包括设置循环次数的初始值、地址指针的初始设置等。2循环体。这是循环工作的主体,包括要重复执行的操作,以及循环的修改 部分。修改部分包括地址指针的修改、循环控制条件的修改等。3. 循环控制部分。它是控制循环的关键,判断循环条件满足与否。特别要注意循环入口和

4、循环次数的正确设置、地址指针及循环控制条件的修 改等。否则会得不到期望的结果。以下为冒泡算法的流程图:国【人I領氏旳知A O/V+1修&刑忖曲杆梢向下一修旳内循环冷B修巴外循环冷数三实验环境1. 汇编环境:Masm For Windows 20122. 文本编辑器:记事本四、实验方法、步骤1. 将MASM的文件置于C:assembly目录下;2. 将 masm.exe 和 link.exe 所在冃录(C:assemblyMASM)添加到 Path 环境变量 中;3. 在C:assembly下新建一个bubble.asm文件,打开bubble.asm,输入汇编程序 代码;4. 运行一个命令行窗口

5、,将当前目录切换到C:assembly,然后输入命令:masm bubble.asm Enter,来汇编程序,根据汇编结果查看程序代码是否有语法错课, 如有,则更正保存后重新汇编,直至没有错误为止,此时会生成bubble.obj文件;5. 输入命令:link bubble.obj Enter,观察输出结果,如果没有错误,则生成 bubble.exe;6. 输入命令:debug bubble.exe Enter,调试程序,并记录运行过程;7. 完成实验报告。五.实验过程原始记录(数据、图表、计算等)I. 将C:assemblyMASM目录添加到Path环境变量中:2.新建名为bubble.asm

6、的文件,输入汇编程序代码:f bubble, asa 一 记爭本文件g)編辑g)格式(Q)查看辺 帮助Q!)STACKSGSTACKSG DATA ARY CT DATA CODEMA INSEGMENT STACK S1DW 64 DUP(ST1) ENDSSEGMENTDW5,7,1,4,3,6,9,8,2;数组,流程图中为 AEQU($-ARV)/2;元素个数ENDSSEGMENTASSUME CS:CODE,DS:DATA,SS:STACKSG PROC FARMOUDS,AXMOUDI,CT-1MOUCX,DIMOUBX,0MOUAX,ARVBXMOU AX,DATALOP1:L0P

7、2:数 次循次针 外坏指 化循址 始內地程序源码:STACKSG SEGMENT STACK SDW 64 DUP(* ST 1)STACKSG ENDSDATASEGMENTARYDW 5,7,1,4,3, 6, 9, 8,2;数组,流程图中为ACTEQU($-ARY)/2;元素个数DATAENDSCODESEGMENTASSUMECS:CODE, DS:DATA, SS:STACKSGMAINPROCFARMOVAX,DATAMOVDS, AXMOVDIZ CT-1;初始化外循环次数LOP1 :MOVCX,DI;置内循环次数MOVBX, 0;置地址指针LOP2 :MOVAXAARYBXCM

8、PAX,ARYBX+2;两数比较JGECONT;次序正确转XCHGAX,ARYBX+2;次序不止确互换位置MOVARYBXzAXCONT:ADDBX, 2;修改地址指针LOOPLOP2;内循环控制DECDI;修改外循环次数JNZLOP1;外循环控制MOVAX,4C00HINT21HMAINENDPCODEENDSENDMAIN3. 汇编源程序:C:assenblynasn bubble.asnMicrosoft R Macro Assembler Uersion 5.00Copyright Microsoft Corp 1981-1985,. 1987. All rights reserved

9、.Object filenane bubble 0BJ:Source listing NUL.LST:Cross-reference NUL.CRF:49974 450186 Bytes symbol space free0 Warning Errors0 Severe ErrorsC:assenbly4. 连接生成可执行文件:5. 调试程序:(1)初始化外循环次数(DI)=0008HcT 命令提示符debug bubble, exe0BCD:00170BCD:001B0BCD:001F -t 387870200 89870000 83C302XCHG AX,BX诬02 MOU BX*0000

10、,AX ADD BX,*02AX=0BCB BX=0000 DS =0BB3 ES=0BB3 0BCD:0003 8ED8AX=0BCB BX=0000 DS=0BCB ES=0BB3 0BCD:0005 BF0800AX=0BCB BX =0000 DS =0BCB ES =0BB3 0BCD:0008 8BCFCX=00CC DX=0000SP=0080SS=0BC3 CS=0BCD IP=0003MOUDS,AXCX=00CC m=0000SP=0080SS=0BC3 GS=ARCD JP=0005 I 而UM , 0008CX=00CC DX=0000SP=0080SS =0BC3 C

11、S=0BCD IP=0008BP=0000 SI=0000 DI=0000NU UP El PL NZ NA PO NCBP=0000 SI=0000 DI-0000MOU CX.DINU UP El PL NZ NA PO NC(2)置内循环次数和地址指针cT 命令提示符 - debug bubble, exe0BCD:0008 8BCF ktAX=0BCB BX=0000 DS=0BCB ES=0BB3 0BCD:000A BB0000MOU CX.DIlex=0008 DX=0000SP=0080CS=ARCD TP=000A MOU BX,0000AX=0BCB BX =0000 DS

12、 =0BCB ES=0BB3CX=0008 DX=0000SP=0080SS =0BC3 CS=0BCD IP=000DBP=0000 SI=0000 DI=0008NU UP El PL NZ NA PO NCDS:0BP=0000 SI=0000 DI=0008 NU UP El PL NZ NA PO NC0BCD:000D 8B870000MOU AX,BX*0000(3)第一趟第一次比较,因为57,故互换位置,进行下一次比较cT 命令提示符 - debug bubble, exeMOU*0BCD:000D 8B870000 ptAX.BX*0000Ds:egAX =0005 BX =

13、0000 CX =0008 DX =0000 SP=0080 DS =0BCB ES=0BB3 SS =0BC3 CS=0BCD IP=0011 0BCD:0011 3B870200CMPAX.CBX*0002ptAX=0005BX=0000DS=0BCB ES=0BB3 0BCD:0015 7D08 -tCX=0008 DX=0000SP=0080SS=0BC3 CS=0BCD IP=0015JGE 001FAX=0005BX=0000DS=MBUB ES=0BB3 0BCD:0017 87870200CX=0008 DX =0000SP=0080SS=0BC2 r? =Qprn iP=aa

14、i7 XCHGAX,BX*0002BP=0000 SI=0000 DI=0008NU UP El PL NZ NA PO NCDS:BP=0000 SI=0000 DI=0008NU UP El NG NZ AC PO CBP=0000 SI=0000 DI=0008NU UP El NG NZ AC PO CYDS:AX =0007BX=0000CX=0008DX=0000SP=0080BP=0000 SI=0000 DI=0008DS=UBCBES=0BB3SS=0BC3CS=0BCDIP=001B NU UP El NG NZ AC PO CV0BCD:001B 89870000MOUBX*0000J,AX(5)修改地址指针,继续内循环cT 命令提示符 一 debug bubble, exe! x|

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号