汇编--binarysearch(二分查找)

汇编--binarysearch(二分查找)

ID:21074010

大小:229.50 KB

页数:11页

时间:2018-10-19

汇编--binarysearch(二分查找)_第1页
汇编--binarysearch(二分查找)_第2页
汇编--binarysearch(二分查找)_第3页
汇编--binarysearch(二分查找)_第4页
汇编--binarysearch(二分查找)_第5页
资源描述:

《汇编--binarysearch(二分查找)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、一、实验目的1.熟悉汇编语言程序设计的开发环境、格式以及汇编过程;2.熟练掌握Debug命令的U命令、D命令、R命令、G命令、T命令、Q命令等;3.掌握分支程序的设计方法。二、实验原理及基本技术路线图(方框原理图)1.Debug常用命令简介:D命令:格式:D[range]或D[address],显示部分存储区的内容;U命令:格式:U[address],将内存某一区的机器码,用此命令反汇编为源程序;R命令:格式:R[Registername],显示和修改各寄存器的内容;G命令:格式:G[=address][address[ad

2、dress..],执行需运行的程序,并对调试的程序进行断点测试跟踪;T命令:格式:T[=address][Value],执行以CS:IP中指定开始的一个或几个指令,并显示出执行每条指令后所有寄存器的内容;Q命令:格式:Q,退出DEBUG状态,说明:Q命令不保留正在内存中运行的文件,若保留需用"W"命令,DEBUG返回到命令处理程序,然后显示出正常的命令提示。2.折半查找流程图具有分支结构的程序叫做分支程序。设计分支程序时最好先用流程图画出程序流向,这样思路清晰,也利于编码实现,实现分支时要用到转移指令。以下为折半查找的流程图

3、:-11-开始输入要查找的数CHARCHAR=BUF[MID]MIN≤MAX结束MID=(MAX+MIN)/2初始化MAX、MINCHAR<BUF[MID]MAX=MID-1查找次数加1MIN=MID+1查找次数加1输出未找到输出BUF[MID],并输出查找次数三、所用仪器、材料(设备名称、型号、规格等)1.操作系统平台:WindowsServer20032.汇编环境:MicrosoftMASM5.03.文本编辑器:记事本四、实验方法、步骤1.将MASM5.0的文件置于C:assembly目录下;2.将masm.exe和

4、link.exe所在目录(C:assemblyMASM5)添加到Path环境变量中;3.用记事本在C:assembly下新建一个BS.asm文件,打开BS.asm,输入汇编程序代码;4.运行一个命令行窗口,将当前目录切换到C:assembly,然后输入命令:masmBS.asm[Enter],来汇编程序-11-,根据汇编结果查看程序代码是否有语法错误,如有,则更正保存后重新汇编,直至没有错误为止,此时会生成BS.obj文件;5.输入命令:linkBS.obj[Enter],观察输出结果,如果没有错误,则生成BS.

5、exe文件;6.输入命令:debugBS.exe[Enter],调试程序,并记录运行过程;7.完成实验报告。五、实验过程原始记录(数据、图表、计算等)1.将C:assemblyMASM5目录添加到Path环境变量中:2.新建BS.asm文件,输入汇编程序代码:程序源码:STACKSGSEGMENTSTACK'S'DW64DUP('ST')STACKSGENDSDATASEGMENTBUFDB30H,31H,32H,33H,34H,35H,36HDB37H,38H,39H,41H,42H,43H,44H,45H;有序表CO

6、UNTEQU$-BUF;表项数-11-CHARDB?;要查找的数MARKDW0;查找次数PROMPTDB'NOFOUND$';没找到提示信息DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSGMAINPROCFARMOVAX,DATAMOVDS,AXMOVAH,1;输入要查找数的字符INT21HMOVCHAR,AL;保存要找的数LEASI,BUF;表起始地址,初始化区间下限(左)MOVCX,COUNTMOVDX,SIADDDX,CX;最后数的地址加1MOVDI,DX;初始化区

7、间上限(右)MOVDX,0CMPAL,[SI];判边界元素MOVBX,SIJBNOFID;小于表中最小数转未找到JEFOUND;是表中最小数转找到CMPAL,[DI-1];判边界元素MOVBX,DIJANOFID;大于表中最大数转未找到JEFOUND;是表中最大数转找到MOVDX,1;初始化查找次数MOVAL,CHAR;要查找的数-11-C1:MOVBX,SI;循环入口ADDBX,DISHRBX,1;折半CMPAL,[BX];比较JZFOUND;找到转PUSHFCMPBX,SI;指针=下限吗?JZNOFID;若等于表示未找到

8、,转POPFJLLESS;可能在左半区转MOVSI,BX;可能在右半区,调整下限JMPSHORTNEXTLESS:MOVDI,BX;调整上限NEXT:INCDX;查找次数加1JMPC1NOFID:LEADX,PROMPT;显示未找到提示信息MOVAH,9INT21HJMPSHORTEXIT

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

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

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