请编制程序,其功能是:将一数据采集系统中采集的80个字节无符号数(已存于SOURCE开始的内存区域)按
请编制程序,其功能是:将一数据采集系统中采集的80个字节无符号数(已存于SOURCE开始的内存区域)按算术平均数字滤波方法进行数字滤波,每8个数求一个平均值(含去余数)。将10个平均值依次写入RESULT指示的内存区域。
例如:
原采集数据 1EH,31H,31H,33H,58H,75H,38H,34H,49H,A2H,98H, DFH,99H,64H,64H,B7H,…
结果为 3DH,CCH,…
部分程序已经给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
请填空BEGIN和END之间已给出的源程序使其完整(空白已用横线标出,每个空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程宋完成所要求的功能。
对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。
试题程序:
(1)DI,OFFSET RESULT (2)8 (3)AL (4)LOOPMAGN2 (5)MOVCL,8 (6)DIVCL (7)MOV [DI], AL (8)INC DI (9)JNZ 解析:系统中有80个字节无符号数,此程序要实现的功能是,每8个数求算术平均值,一共求出10纽平均值。
程序的堆栈段定义了一个128字节的堆栈区.堆栈段下面是数据段。数据段中定义了四个字节型变量,原始数据区SOURCE、结果数据区RESULT、原始数据文件名NAME0、结果数据文件名NAME1。数据段下面是代码段,告诉汇编程序,代码段、数据段和堆栈段分别属于段寄存器CS、DS、SS。先将原始数据的偏移地址送SI中,结果数据存放的偏移地址送DI中。所以第(1)空填写"DI,OFFSET RESULT"。DI中存放平均值。DX赋初值为N,寄存器AX和BX清0。
第(2)空CX是作为循环的次数,所以根据题意,CX应该等于8,即循环求8次和。接着将SI中内容送AL中,开始求和,将BX与AL相加,结果存放在BX中。所以第(3)空填写 "AL"。SI地址加1,循环取下一个数据,继续求和。循环入口处为MAGN2,所以第(4)空填写"LOOP MAGN2"。
求完8个数的和之后,接着要求平均值,先给CL赋值为8,再用8个数的和AX除以CL,得到平均值。第(5)、(6)空分别填写"MOVCL,8","DIV CL"。
第(7)、(8)空是将平均值结果存放到结果数据区DI中,DI地址加1,存放下一个平均值。
从第(9)空的前一条指令理解,每次求完8个数的平均值,DX减1,当DX不为。时,说明10组平均值还没有求完,转向MAGN1开始的指令处继续求下一组8个数的平均值。所以第(9)空填写"JNZ"。
如果F实现一个程序,输入变量x1和x2的边界、区间分别为:a≤x1≤d,区间为[a,b],[b,c] 计算机类考试 2020-05-23 …
有两条式子我经常搞不清楚,一条是W=q∪,一条是F=Eq,一个是做功一个是力的,但以我的理解U是电 物理 2020-06-07 …
某城市共有A.B.C.D.E五个区,A区人口是全市人口的5/17,B区人口是A区人口的2/5,C区 数学 2020-06-12 …
用2,4,6三个数字来构造六位数,但是不允许有两个连着的2出现在六位数中(例如644264过程要尽 数学 2020-06-16 …
☆要计算过程.东八区和东九区的分界线是?东3区9点,东10区几点?东10区15点,西3区几点?西8 其他 2020-06-16 …
高一地理.要详细过程.谢谢有甲、乙两地,甲地(40°N、110°E),乙地(30°N、115°E高 其他 2020-07-18 …
已知东二区时间怎麼算东十区的时间?请看问题补充已知东二区为8:00,求东十区区时?已知西一区为10 数学 2020-07-25 …
某城市共有A、B、C、D、E五个区,A区人口是全市人口的5/17,B区人口是A区人口的2/5,C区人 数学 2020-11-29 …
一阶微分方程!一阶非齐次常微分方程y=e^[-∫(-1/x)dx][∫(1/lnx)e^∫(-1/x 数学 2020-12-07 …
e的导数是e还是0谢谢,那由方程e^y(e的y次方)+xy-e=o所确定的隐函数y的导数,这个例题对 其他 2021-02-16 …