首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
编制一个程序,其实现的功能是:对一个数字采集系统采集的50个字节无符号数按算术平均数字滤波方法进行数字滤波,每5个数求一个平均数(含余数,其中低字节为商,高字节为余数),将10个平均值依次存入RESULT指示的内存区域。 例如: 原始采集数据:
编制一个程序,其实现的功能是:对一个数字采集系统采集的50个字节无符号数按算术平均数字滤波方法进行数字滤波,每5个数求一个平均数(含余数,其中低字节为商,高字节为余数),将10个平均值依次存入RESULT指示的内存区域。 例如: 原始采集数据:
admin
2010-12-14
64
问题
编制一个程序,其实现的功能是:对一个数字采集系统采集的50个字节无符号数按算术平均数字滤波方法进行数字滤波,每5个数求一个平均数(含余数,其中低字节为商,高字节为余数),将10个平均值依次存入RESULT指示的内存区域。
例如:
原始采集数据:05H,07H,12H,08H,10H,09H,2EH,56H,48H,85H,65H,36H,45H……
则结果为: 0A04H,4003H……
部分程序已经给出,其中原始数据由过程LOAD从文件INPUT.DAT中读入以SOURCE开始的内存单元中。运算结果要求从RESULT开始的内存单元存放,由过程SAVE保存到文件OUTPUT.DAT中。
请填空BEGIN和END之间已给出的源程序使其完整,空白已经用横线标出,每行空白一般只需要一条指令,但采用功能相当的多条指令也行,考生也可以删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。
【试题程序】
EXTRN LOAD:FAR,SAVE:FAR
N EQU 10
DSEG SEGMENT
SOURCE DB 6*N DUP(?)
RESULT DW N DUP(0)
NAME0 DB ’INPUT.DAT’,0
NAME1 DB ’OUTPUT.DAT’,0
DSEG ENDS
SSEG SEGMENT STACK
DB 256 DUP(?)
SSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG,SS:SSEG
START PROC FAR
PUSH DS
XOR AX,AX
PUSH AX
MOV AX,DSEG
MOV DS,AX
LEA DX,SOURCE
LEA SI,NAME0
MOV CX,6*N
CALL LOAD
;******** BEGIN ********
LEA SI,SOURCE
LEA DI,RESULT
MOV DX,N
AGAIN: SUB AX,AX
(1)
MOV CX,6
AGAIN1: MOV AX,[SI]
ADD BX,AL
INC SI
(2)
(3)
MOV CL,6
(4)
(5)
ADD DI,2
DEC DX
JNZ AGAIN
;******** END ********
LEA DX,RESULT
LEA SI,NAME1
MOV CX,N*2
CALL SAVE
RET
START ENDP
CSEG ENDS
END START
选项
答案
(1)SUB BX,BX 或 XOR BX,BX 或 MOV BX,0 (2)LOOP AGAIN1 (3)MOV AX,BX (4)DIV CL (5)MOV[DI],AX
解析
如果将数据中6个数分为一组的话,则对每一组的操作是一样的,即求这一组数的平均数,因此只需要实现一组的操作,其他的用循环程序来实现。
将指针初始化以后,将循环的参数送DX寄存器,用来控制循环。进入循环以后,因为每次循环都要使用某些寄存器,并且每次的内容都不一样,所以要对部分寄存器进行清零操作。从后面的程序可以看出,BX寄存器是用来进行求和操作的,所以在每次进行求和操作之前应该对其进行清零操作,否则会把前一次的结果累加到后一次中。因此,需要对BX寄存器进行清零,这就是第一个空白处应该填的内容。通常进行清零的操作有SUB BX,BX 或 XOR BX,BX 或 MOV BX,0。
完成清零工作以后,便对数据进行处理。要求一组数据的平均数,首先要进行求和操作,从程序中可以看出求和操作用循环AGAIN1来实现,然而程序中没有控制AGAIN1循环结束的语句(即判断什么情况继续循环,什么情况停止循环向下执行的语句),所以需要在空白处填写。从第二个空白以上的程序来看,已经完成了加法运算,只需要控制其循环结束即可,所以要在第二个空白处填控制循环语句。在前面的程序中,已经将循环次数送到CX中,因此用LOOP AGAIN1即可控制求和运算的循环。
求和结束以后,就要对数据进行除法操作。由于程序中除数为6,所以被除数放到AX中即可。前面的求和操作结束时,所得结果最后存放的寄存器为BX,因此需要将数据从BX传送到AX中。传送结束以后,就可以进行除法操作。除完以后,将结果存入RESULT中,所以第三个、第四个和第五个空加上已经有的语句需要完成上述操作。在第三个空中,将被除数传送到BX,因此指令为MOV AX,BX。MOV CL,6,将除数传送到CL寄存器中,接下来进行除法操作,即第四个空要填写的内容为DIV CL。执行完除法操作以后,商和余数分别位于AL和AH寄存器中,与题目要求的商在低字节,余数在高字节的要求刚好吻合,因此直接送入RESULT中即可,这样便由最后一个空来实现,而指针DI已经指向RESULT,所以应填MOV [DI],AX。
转载请注明原文地址:https://kaotiyun.com/show/DdgZ777K
本试题收录于:
三级PC技术题库NCRE全国计算机三级分类
0
三级PC技术
NCRE全国计算机三级
相关试题推荐
Windows98注册表的数据结构是层次型的,最高层共有6个根键,其中有些是主根键,有些是动态键或别名。主根键的个数有几个?
在Windows98环境下,如果有1个DOS应用程序、2个Win16应用程序和3个Win32应用程序正在运行,则系统当前有几个虚拟机在工作?
下面是关于两片8237级联构成主从式DMA控制器的叙述,其中正确的是
在Windows98环境下,所有的CPU都是按368处理器的工作模式进行管理的。在Windows98启动并进入图形用户界面后,CPU的工作模式为【】。
假设某硬盘存储器由单碟组成,每个盘面有2000个磁道,每个磁盘有1000个扇区,每个扇区的容量为512字节,则该磁盘的存储容量大约为
根据下面定义的数据段: DSEGSEGMENT DAT1DB’1234’ DAT2DW5678H ADDREQUDAT2-DAT1 DSEGENDS 执行指令MOVAX,ADDR后,AX寄存器中的内容是
Windows98内置了许多系统工具,用户利用这些工具可以对系统进行监视和维护。在下列叙述中,哪个是错误的?
Windows98通过注册表提供的信息来控制系统的运行。在下列有关Windows98注册表的叙述中,哪个是错误的?
Windows98按照ACPI标准进行电源管理,将系统的能耗状态设置为三种,分别为工作状态、等待状态和上【】状态。
下列网中不是按距离划分的是( )。
随机试题
治疗破伤风时,注射大量TAT的目的是
患者,男,58岁。肛周伤口反复破溃伴少量溢液,偶尔有气体溢出,直肠指诊可触及一较硬的条索状管道。在该情况发生之前,该患者很可能患有
肺热津伤型消渴,若见烦渴不止,小便频数,脉洪数无力,可选方( )。
香港地区甲公司与内地乙公司发生投资纠纷,乙公司诉诸某中级人民法院。陈某是甲公司法定代表人,张某是甲公司的诉讼代理人。关于该案的文书送达及法律适用,下列哪些选项是正确的?(2011年试卷一第79题)
习近平主席主持召开中央全面深化改革领导小组第一次会议强调,对改革进程中已经出现和可能出现的问题,困难要一个一个克服,问题要一个一个解决,既敢于出招又善于应招,做到“蹄疾而步稳”。这要求我们()。①发挥改革作为社会发展根本动力的作用
(2017·江西)按照课程内容的固有属性,可将课程分为()(常考)
有一长方形,它的K与宽的比是5:2,埘角线长29厘米,这个长方形的面积是多少平方厘米?()
有一瓶浓度为15%的盐水500克,每次加入34克浓度为60%的盐水,则至少加______次该盐水,使这瓶盐水的浓度超过30%。
所谓的“新闻”,不再是国家社会的大事,甚至传统上所谓的“碎嘴话题”或各种绯闻也成了重要新闻,英美的主要报纸如《泰晤士报》《纽约时报》等,碎嘴新闻或绯闻的比例也在增加,尤其是电视媒体或各种社交电子媒体,它们的比例更高。特别是演艺圈的名人活动更成了新闻广告不分
A、Hehasmanyinterestingdreams.B、Hesleepsalotwithoutdoinganything.C、Hedoesn’tputhisideasintopractice.D、Hedoesn
最新回复
(
0
)