请编制程序,其功能是:对经常上下波动的数据采用只记录峰值的数据压缩方法,即每次将采样到的当前
请编制程序,其功能是:对经常上下波动的数据采用只记录峰值的数据压缩方法,即每次将采样到的当前值和前一次值比较,如数据变向改变(原变大现变小或原变小现变大),说明已过峰值,这时就将当前值记录下来。
例如(下列数据均为无符号数):
原数据:23H,45H,89H,67H,5CH,36H,3CH,78H…
压缩后:23H,89H,36H…
内存中从SOURCE开始连续存放着40个八位无符号数,假定相邻两数无相等的情况,编程按上述方法进行压缩,结果保存在RESULT开始的内存单元中。
部分程序已给出,请填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成所要求的功能。
原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。
试题程序:
(1)XORDX,AX (2)ANDDH,80H (3)Z (4)STOSB (5)MOVDX,AX 解析:此程序要实现的功能是:将经常上下波动的数据采用只记录峰值的数据压缩方法,即每次将采样到的当前值和前一次值比较,如数据变向改变,即原变大现变小或原变小现变大,说明已过峰值,这时就将当前值记录下来。
程序的堆栈段定义了一个128字节的堆栈区。堆栈段下面是数据段。数据段中定义了四个字节型变量:原始数据区SOURCE、结果数据区RESULT、原始数据文件名NAME0、结果数据文件名NAMEI。数据段下面是代码段,告诉汇编程序,代码段、数据段和堆栈段分别属于段寄存器CS、DS、Ss。
将原始数据的偏移地址装入到SI中,结果数据存放的偏移地址装入到DI中。CLD指令将方向标志DF清0,在数据操作时,实现地址指针自动增量。然后用MOVSB指令将SI中内容送到DI中。先将两个寄存器,AX、BX清0。然后用LOADSB指令将SI中内容装入到AL中,即取数X[1]。接着将SI-2中的内容,即X[0]送BL中,即取数X[0]。将AX减去BX,即x[1]-X[0],差值放在AX中。接着将差值暂存在DX中。CX赋初值为N-2,用于控制循环处理的次数。
FILTER段,先做差值,通过判断相邻两个差值的符号是否相等,来观察数据改变方向是否发生了变化。寄存器AX、BX先清0。然后用LOADSB指令将SI中内容装入到AL中,即取数X[n],接着将SI-2中的内容送BL,即BL等于X[n-1)。然后将AX减去BX,即X[n]-X[n-1),差值结果放在AX中。接下来要比较后一差值AX与前一差值DX符号位是否相同。先将DX和AX进行异或操作,结果放DX中,因为只需看最高位,即符号位,所以,再将DH和80H进行逻辑与操作,若结果为0,即ZF=1,说明两个差值DX和AX符号位相同,转SKIP段执行,继续搜索下面的数据;否则,ZF=0,说明两个差值DX和 AX符号位不相同,则将当前值记录下来,即将AL存入到DI中。从上面的分析看来,第(1)空填写"XOR DX,AX",第(2)空填写"ANDDH,80H",第(3)空填写"Z",第(4)空填写"STOSB"。
SKIP段,是两个差值DX和BX符号位相同时,继续搜索数据,将新的差值存在DX中,准备和接下来的差值比较。所以第(15)空填写"MOV DX,AX"。然后从FILTER入口处循环,继续判断数据变化方向情况,一共循环N-2次。
(1)3.495精确到百分位是,精确到个位是.(2)9..5.4保留三位小数是,保留四位小数是.( 其他 2020-04-07 …
573至少加上,得到的数既是2的倍数,又有因数5;至少减去,得到的数是3的倍数. 数学 2020-04-07 …
从0,2,4,9这4个数中,选出3个数组成一个三位数.组成的数是3的倍数:组成的数同时是2,3和5 数学 2020-04-08 …
心灵魔术从1到63随便想一个数字我可以猜到你想的是什么数字这是什么原因?这里是六堆数字,你想的数字 语文 2020-04-11 …
列一元一次方程解应用题,一个两位数,个位上的数字是十位上的数字的两倍,先将这两个数字对调,得到第二 数学 2020-05-13 …
顶礼膜拜.两组相同的数字有什么含义?比如:10:10、11:11、22:22这些有什么含义?为什么 数学 2020-05-14 …
整式加减应用题,急用!老黄驾车在马路上均速行驶,他第一次看到里程碑上的数是两位数,它的十位数字为Y 数学 2020-05-16 …
司机小李驾车,他看到里程碑上的数是两位数,1小时后,看到里程碑上的数恰是第一次看到的数颠倒了顺序的 数学 2020-05-17 …
小王驾车在公路上匀速行驶,她看见里程碑上的数是两位数;一小时后看到里程碑上的数恰是第一次看到的数颠 数学 2020-05-17 …
小王驾车在公路上匀速行驶,他看见里程碑上的数是两位数;一小时后看到里程碑上的数恰是第一次看到的数颠 数学 2020-05-17 …