三级PC技术机试-97

上传人:桔**** 文档编号:511629699 上传时间:2023-10-02 格式:DOC 页数:2 大小:26KB
返回 下载 相关 举报
三级PC技术机试-97_第1页
第1页 / 共2页
三级PC技术机试-97_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《三级PC技术机试-97》由会员分享,可在线阅读,更多相关《三级PC技术机试-97(2页珍藏版)》请在金锄头文库上搜索。

1、三级PC技术机试-97(总分:100.00,做题时间:90分钟)、上机题(总题数:1,分数:100.00)1.请编制程序,其功能是:内存中连续存放着20个无符号二进制字序列 Xi(i =1,2,20),字的最高 3位为000,此序列对应某一信号在一段时间内的连续变化,现对该信号进行一阶低通数字滤波,其滤波方 程为:Yi = (15*Yi-1/16)+(Xi/16),Y0= 0Yi(i =1,2,20)为滤波后得到的新序列,结果存入内存。例如:内存中有01FFH,02FFH结果 001H,004DH部分程序已经给出,其中原始数据由过程 LOAD从文件INPUT1.DAT中读入SOURC开始的内存

2、单元中,转换 结果要求从RESULT开始存放,由过程 SAVE保存到文件OUTPUT1.DA中。请填空BEGIN和END之间已经给岀的一段源程序使其完整,需填空处已经用横线标岀,每个空白一般只需 要填一条指令或指令的一部分(指令助记符或操作数),也可以填入功能相当的多条指令,或删去BEGIN和END之间原有的代码并自行编程来完成所要求的功能。对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。试题程序:(分数:100.00) 正确答案:(BX(2) ADD(3) SUB(4) MOV BX,AX(5) INC DI(6)

3、 INC SI)解析:解析此程序要实现的功能是:内存中连续存放着20个无符号二进制字序列 X(i =1,2,20),字的最高 3位为000,此序列对应某一信号在一段时间内的连续变化,现对该信号进行一阶低通数字滤波,其滤波方程为:Y = (15*Y i-1 /16)+(X i/16),Y 0 = 0。Y(i =1,2,20)为滤波后得到的新序列,结果存入内存。此程序的关键是要会将滤波方程灵活地拆开来,才能更好地理解程序。上面的公式可以拆成这样:Y =Y-1 +Xi/16-Y i-1 /16,Y 0=0。Y(i =1,2,20)。程序的堆栈段定义了一个128个字节的堆栈区。堆栈段下面是数据段。数据

4、段中定义了两个字型变量:原始数据区SOURCE结果数据区RESULT两个字节型变量:原始数据文件名 NAME0结果数据文件名NAME1 数据段下面是代码段,告诉汇编程序,代码段、数据段和堆栈段分别属于段寄存器CS DS SSo先将原始数据的偏移地址装入到 SI中,结果数据存放的偏移地址装入到DI中。CX赋值为N,用于控制循环处理的次数。BX赋初值为0,表示丫。= 0。注意:BX总是存放前一计算的结果,即Y-1 oAGN0段,先将BX暂存DX表示丫“。所以第(1)空填写BX。取第一个无符号二进制字即SI中内容Xi送AX,然后将CX压入堆栈,保存原现场,再给CX赋值为4,等用完了 CX的这个值后,

5、将CX从堆栈中弹出, 返回操作系统。AGN1段,先将BX和AX都逻辑右移一位,然后再从 AGN1入口处循环,继续将 BX和AX逻辑右移一位,这 样一共循环四次,就将 BX和AX都逻辑右移了四位,即 BX和AX的值都变成了原来的1/16,即Y/16和 X/16。然后将CX从堆栈中弹出。将 AX即X/16与DX即Y-1相加,结果先放 AX中。然后再将 AX减去BX 即Y-i /16,结果放AX中,就得到了 Y的值。然后将结果 AX印Y存入到DI中。再将AX值即Y赋给BX BX 将作为计算下一个值 Y+1,的参照数。DI地址两次加1,准备存储下一个 Yi, SI地址也两次加1,准备取下 一个 Xi 进行计算。 因为原始数据 Xi 和结果数据 Yi 都是 字序列, 每个数存放在内存中连续两个地址空间中。 然后从AGNO入口处循环,继续计算,进行下一次滤波,得到下一个值即Y+1。从上面的分析来看,第(2)空填写ADD,第(3)空填写SUB,第 空填写MOVBX, AX,第(5)空填写INC DI,第(6)空填写INC SI。

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

当前位置:首页 > 办公文档 > 活动策划

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