首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
请编制程序,其功能是:对经常上下波动的数据可采用只记录峰值的数据压缩方法。即每次将采样到的当前值和前一次值比较,如数据变化方向改变(原变大现变小或原变小现变大),说明已过峰值,这时就将前一值(峰值)记录下来。 例如(下例数据均为无符号数): 原
请编制程序,其功能是:对经常上下波动的数据可采用只记录峰值的数据压缩方法。即每次将采样到的当前值和前一次值比较,如数据变化方向改变(原变大现变小或原变小现变大),说明已过峰值,这时就将前一值(峰值)记录下来。 例如(下例数据均为无符号数): 原
admin
2010-09-01
40
问题
请编制程序,其功能是:对经常上下波动的数据可采用只记录峰值的数据压缩方法。即每次将采样到的当前值和前一次值比较,如数据变化方向改变(原变大现变小或原变小现变大),说明已过峰值,这时就将前一值(峰值)记录下来。
例如(下例数据均为无符号数):
原数据:23H,45H,89H,67H,5CH,36H,3CH…
压缩后:23H,89H,36H…
内存中从SOURCE连续存放着48个八位无符号数,假定无相邻两数相等的情况,编程按上述方法进行压缩,结果保存在 RESULT开始的内存单元中。
部分程序已给出,请填空BEGIN和END之间已给出的源程序使其完整,空白已用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可,或删除BEGIN和END之间原有的代码并自行编写程序片段来完成所要求的功能。
原始数据由过程LOAD从文件INPUT.DAT中读入SOURCE开始的内存单元中,结果要求从RESULT开始存放,由过程 SAVE保存到文件OUTPUT.DAT中。
对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。
[试题程序]
EXTRN LOAD:FAR,SAVE:FAR
N EQU 40
STAC SEGMENT STACK
DB 128 DUP(?)
STAC ENDS
DATA SEGMENT
SOURCE DB N DUP(?)
RESULT DB N DUP(0)
NAME0 DB ’INPUT.DAT’,0
NAME1 DB ’OUTPUT.DAT’,0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STAC
START PROC FAR
PUSH DS
XOR AX,AX
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV ES,AX ;置附加段寄存器
LEA DX,SOURCE ;数据区起始地址
LEA SI,NAME0 ;原始数据文件名起始地址
MOV CX,N ;字节数
CALL LOAD ;从’INPUT.DAT’中读取数据
; ******** BEGIN ********
LEA SI,SOURCE
LEA DI,RESULT
CLD
MOVSB ;Y[0]=X[0]
XOR AX,AX
XOR BX,BX
LODSB
MOV BL,[SI-2]
SUB AX,AX ;X[1]-X[0]
MOV DX,AX
MOV CX,N-2
FILTER:
XOR AX,AX
XOR BX,BX
LODSB ;X[n]
MOV BL,[SI-2] ;X[n-1]
SUB AX,BX ;X[n]-X[n-1]
(1) ;相邻两差值(Ax,Dx)符号位是否相同
(2)
J (3) SKIP ;相同,数据方向未变
(4) ;不同,方向变化,保存峰值
STOSB
SKIP: (5)
LOOP FILTER
; ******** END ********
LEA DX,RESULT ;数据区起始地址
LEA SI,NAME1 ;结果文件名起始地址
MOV CX,N ;字节数
CALL SAVE ;保存结果到 ’OUTPUT.DAT’ 文件中
RET
START ENDP
CODE ENDS
END START
选项
答案
(1)XOR DX,AX (2)AND DH,80H (3)Z (4)MOVAL,[SI-2] (5)MOV DX,AX
解析
本题是一道综合题,其所采用的算法是读取第一个数并保存到结果数据区,然后再读取第二个数,将第一个数和第二个数相减,将结果保存起来,读取第三个数,然后将第二个数和第三个数相减,将得到的结果和前面得到的结果进行符号位的判断,如果相同则表明数据变化方向相同,不用保存第二个数据,如果不同则说明数据变化方向相反,需要保存第二个数据,后面的数据依次类推,直到最后一个数据为止。
解决此类题型时,根据所采用的算法不同,其技巧也有一定的区别,而本程序中就用异或运算将Ax和Bx设置为0;将两次差值进行异或运算,并将运算结果与80H进行与运算,以此判断两个差值的符号位是否相同。通过判断两个差值的符号位是否相同来判断数据变化方向是否相同。
转载请注明原文地址:https://kaotiyun.com/show/uTgZ777K
本试题收录于:
三级PC技术题库NCRE全国计算机三级分类
0
三级PC技术
NCRE全国计算机三级
相关试题推荐
主题数据库可以从根本上改变那种以【】为目的的数据库建立的方式。
国际标准化组织ISO提出的“开放系统互联参考模型(OSI)”有______层。
基本的客户机/服务器(Client/Server,C/S)结构是由客户机、服务器和______三部分组成。
黑箱测试不考虑程序内部细节、结构和实现方式,只是根据程序【】说明来设计测试用例。
面向数据流的设计方法,可以把数据流程图映射变换成软件【】图。
以下关于主题数据库和应用项目之间关系的描述中,错误的是
中断及中断处理是计算机系统的重要功能,下述Ⅰ.输入、输出设备Ⅱ.数据通道Ⅲ.时钟Ⅳ.软件哪个(些)可能成为中断源?______。
数据库管理系统的英文缩写是()。
实施战略数据规划中的企业模型图。一般可将其分解为以下层次:公司或部门,职能范围和功能,而功能的最低层是企业的【】。
数据是人们用来反映客观世界而记录下来的【】的物理符号。
随机试题
富强
A.乳头状腺癌B.滤泡状腺癌C.未分化癌D.髓样癌发展迅速,属高度恶性的是
化疗前需要准确测量病人体重的原因是
不属于排泄途径的是
在口腔健康调查中,冠龋的诊断标准为
激光切割是一种无接触的切割方法,其切割的主要特点有()。
对留购的智能机器人,()。该批设备进口时,其税费手续可按()处理。
白族人非常好客,客人光临,必以“三道茶”招待;为客人斟茶,不能斟满,有“酒满敬人,茶满欺人”之说。()
若有以下程序#include<stdio.h>int*f(int*s,int*t){int*k;if(*s<*t){k=s;s=t;t=k;}returns;}main(){inti=3,j=5,*p=&i,*q=&j,*r;r=f(p,q
Exceptionalchildrenaredifferentinsomesignificantwayfromothersofthesameage.Forthesechildrentodeveloptotheirf
最新回复
(
0
)