当前位置: 网学 > 编程文档 > 汇编语言 > 正文

Casl汇编语言辅导:三、试题解释

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/18
下载{$ArticleTitle}原创论文样式
解] 二分法查找的基本思想是对任意一段查找空间 [LOW,UP](有序)中的的表元,试探位置 K=(LOW+UP)/2上的成分 NTABLE(K) 与 M 进行比较,其可能结果有三种:

1)NTABLE(K)= M,找到,结束查找。

2)NTABLE(K)< M,下一查找空间为[K+1,UP]。

3)NTABLE(K)> M,下一查找空间为[LOW,K-1]。

初始查找空间为 LOW=0,UP=N-1。

程序中空格___(1)___和___(2)___前面的两条指令是将查找空间的上限 LOW 中 0,二在它之后的指令是将 GR2 中的值存于查找空间的下限 UP 中。因此这两个空格是把下限初值 N-1 送给 GR2。由于进入子程序时,N 存放在(GR1)+1 中,所以这两条指令为:

LD GR2,1,GR1

LEA GR2,-1,GR2

从标号 LOOP 开始的循环是求试探位置 K,根据 NTABLE(K) 和 M 比较结果,分别处理三种不同的情况,直至查到或查找空间为 0 。

考察空格___(3)___和___(4)___前面的指令,可得 K 在 GR2 和 GR3 中,在执行___(3)___和___(4)___两条指令后,有三种转向,因此这两条指令是将 GR0 中的 M 与 NTABLE(K)比较。而从程序说明中以知,NTABLE(0) 地址在 GR1+2。故 NTABLE(K) 的地址应为 GR2 或 GR3 与(GR1+2)相加(绝对地址)。但GR2 在后面要作相对地址  K用,所以只能是 GR3 与(GR1+2)相加。所以空格___(3)___和___(4)___为:

ADD GR3,2,GR1

CPL GR0,0,GR3

执行上述两条指令后,若不相等则要调整查找空间,在继续查找前,先应判断查找空间是否为 0,在程序中是用标号为 CMPLU 的指令实现,显然 GR2 内应是查找空间的下限 UP。故___(5)___的答案为:

LD GR2,UP

当查找空间不为0时(UP>LOW),应继续查找,所以___(6)___的解答为:

JPZ LOOP

子程序返回时,GR0 中存放查找结果,在表中找到M时,GR0 中存放M在表中的位置序数,在程序中用 "FOUND LEA GR0,1,GR2" 实现(这里 GR2 中是试探位置,与位置序数差 1 )。

若表中找不到 M,GR0 中要放 0,所以___(7)___处应填 "LD GR2,-1"。

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号