更多"请编制程序PROG1.ASM,其功能是:将一数据采集系统中采集的80个"的相关试题:
[简答题]请编制程序PROG1.ASM,其功能是:将一数据采集系统中采集的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链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处,请加以修改。
试题程序:
EXTRN LOAD:FAR, SAVE:FAR
N EQU 10
STAC SEGMENT STACK
DB 128 DUP ( )
STAC ENDS
DATA SEGMENT
SOURCE DB 8*N DUP(0)
RESULT DB N DUP(0)
NAME0 DB ’INPUT1.DAT’,0
NAME 1 DB ’OUTPUT1.DAT’,0
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STAC
START PROC FAR
PUSH DS
XOR AX,AX
PUSH AX
[多项选择]编制一个程序,其实现的功能是:对一个数字采集系统采集的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
A. (1)
B. MOV
C. CX,6AGAIN1: MOV
D. AX,[SI]
E. ADD
F. BX,AL
G. INC
H. SI
I. (2)
J. (3)
K. MOV
L. CL,6
M. (4)
N. (5)
O. ADD
P. DI,2
Q. DEC
R. DX
S. JNZ
T. AGAIN
[简答题]编写两个4字节无符号数相减的程序。被减数存放在片内RAM 30H开始的数据区,减数存放在40H开始的数据区(均为低位在前),差值存回30H开始的存储单元,试补全下列程序。
MOV R0,#30H
MOV R1,#40H
MOV R3,#04H
SJMP $
[简答题]编制一个程序,其功能是:计算内存中连续存放的20个字节无符号数据的相邻两个数据之间的和,并找出和的最大值,和的最大值存放在结果的最后一个字单元,和为字数据。
例如:
内存中有:20H,04H,58H,34H,35H,4DH……,
则结果为:0024H,008CH,0082H……
部分程序已经给出,其中原始数据由过程LOAD从文件INPUT.DAT中读入以SOURCE开始的内存单元中。运算结果要求从RESULT开始的内存单元存放,由过程SAVE保存到文件OUTPUT.DAT中。
请填空BEGIN和END之间已给出的源程序使其完整,空白已经用横线标出,每行空白一般只需要—条指令,但采用功能相当的多条指令也行,考生也可以删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。
【试题程序】
TRN OAD:FAR,SAVE:FAR
N EQU 10
SSEG SEGMENT TACK
B 256 DUP ( )
SSEG NDS
DSEG EGMENT
SOURCE DB N*2 DUP ( )
RESULT DW N+1 DUP (0)
NAME0 DB ’INPUT.DAT’,0
NAME1 DB ’OUTPUT.DAT’,0
DSEG DS
CSEG EGMENT SSUME CS:CSEG,DS:DSEG,SS:SSEG
START PROC FAR
USH S
OR AX,AX
USH X
OV AX,DSEG
OV DS,AX
EA DX,SOURCE
EA SI,NAME0
OV CX,N*2 ALL GAD
; ******** BEGIN ********
EA SI, SOURCE
EA DI,RESU
[简答题]编制一个程序,其功能为:内存中以8位无符号数形式连续存放着10个数据,这数据来自于一个自动抄表系统记录的10个用户某月天然气的使用量(立方米),天然气费计算公式如下(其中,X表示天然气用量,Y表示应交天然气费):
- a)Y=X×80 X≤6
- b)Y=X×120 6<X≤10
- c)Y=X×160 X>10
计算每个用户需要交的天然气费,结果用字表示,并将结果存入指定单元。
例如:
用天然气量:05H,07H,12H……
天然气费: 0190H,0348H,0780H……
部分程序已经给出,其中原始数据由过程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 N DUP( )
RESULT DW N DUP(0)
A DB 80
B DB 120
C DB 160
NAME0 DB ’INPUT.DAT’,0
NAME1 DB ’OUTPUT.DAT’,0
DSEG ENDS
SSEG SECMENT STACK
DB 256 DUP( )
SSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG,SS:SSEG
START PROC FAR
PUSH
[简答题]请编制程序,其功能是:将内存中由SOURCE指示的10个字节有符号数组成的数组分成正数和负数两个数组,并求这两个数组的数据个数,结果存放在RESULT指示的内存区域。存放形式为正数个数在前,其后跟正数数组元素,然后是负数个数及负数数组元素。
例如:
内存中有:1EH,91H,74H,91H,42H,30H,81H,F3H,18H,25H
结果为:06H,1EH,74H,42H,30H,18H,25H,04H,91H,91H,81H,F3H
部分程序已经给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,转换结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
请填空BEGIN和END之间已经给出的一段原程序使其完整,需填空处已经用横线标出,每个空白一般只需要填一条指令或指令的一部分(指令助记符或操作数),也可以填入功能相当的多条指令,或删去BEGIN和END之间原有的代码并自行编程来完成所要求的功能。对程序必须进行汇编,并与IO.OBJ连接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。
[试题程序]
EXTRN LOAD:FAR,SAVE:FAR
N EQU 10
STAC SEGMENT STACK
DB 128 DUP( )
STAC ENDS
DATA SEGMENT
SOURCE DB N DUP(0)
RESULT DB N+2 DUP(0)
NAME0 DB ’INPUT1.DAT’,0
NAME1 DB ’OUTPUT1.DAT’,0
NDATA DB N DUP(0)
PDATA DB N DUP(0)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STAC
START PROC FAR
PUSH DS
XOR AX,AX
PUSH AX
[简答题]请编制程序,其功能是:将内存中由SOURCE指示的40个字节有符号数组成的数组分成正数和负数两个数组,并求这两个数组的数据个数,结果存放在RESULT指示的内存区域。存放形式为正数个数在前,其后跟正数数组元素,然后是负数个数及负数数组元素。
例如:
部分程序已经给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中,转换结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
请填空BEGIN和END之间已经给出的一段原程序使其完整,需填空处已经用横线标出,每个空白一般只需要填一条指令或指令的一部分(指令助记符或操作数),也可以填入功能相当的多条指令,或删去BEGIN和END之间原有的代码并自行编程来完成所要求的功能。
对程序必须进行汇编,并与IO.OBJ连接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。
[试题程序]
EXTRN LOAD:FAR,SAVE:FAR
N EQU 40
STAC SEGMENT STACK
DB 128 DUP ( )
STAC ENDS
DATA SEGMENT
SOURCE DB N DUP(0)
RESULT DB N+2 DUP(0)
NAME0 DB ’INPUT1.DAT’,0
NAME1 DB ’OUTPUT1.DAT’,0
NDATA DB N DUP(0)
PDATA DB N DUP(0)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STAC
START PROC FAR
PUSH DS
[简答题]请编制程序,其功能为:设由20个8位有符号数构成一个数组,试依次去掉其中负的奇数,生成一个新的数组(顺序不变)。结果存放在RESULT开始的内存单元中。
部分程序已经给出,其中原始数据由LOAD过程从文件INPUT1.DAT中读入从SOURCE开始的内存单元,运算结果要求从RESULT开始存放,由SAVE过程保存到OUTPUT1.DAT文件中。请在BEGIN和END之间补充使其完整。
对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终产生运行结果。
部分程序如下:
; PROG1.ASM
EXTRN LOAD:FAR,SAVE:FAR
LEN EQU 20
DSEG SEGMENT
SOURCE DW N DUP ( )
RESULT DW N DUP (0)
NAME0 DB ’INPUT1.DAT’,0
NAME1 DB ’OUTPUT1.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
MOV ES, AX
LEA DX, SOURCE
LEA SI,NAME0
MOV CX,N
CALL LOAD
; *** BEGIN ***
…………
…………
…………
; *** END ***
LEA DX, RESULT
LEA SI,NAME1
MOV CX,N
CALL SAVE
RET
START E
[简答题]请编制程序PROG1.ASM,其功能是;从SOURCE开始存放的21个8位有符号数(补码),相邻数的差距不超过-8~7,可采用差分压缩,其方法如下:第一个数据不变,其后数据取与前一数据之差值并用4位二进制补码表示,两个差值拼成一个字节,前一个差值放在高4位,后一个差值放在低4位。
例如:
原数据为:X[n]: 23H, 27H, 2AH, 29H, 22H...
压缩后为:Y[n]:23H, 43H, F9H...
部分程序已给出,其中原始数据由过程LOAD从文件INPUT1.DAT中读入SOURCE开始的内存单元中。运算结果要求从RESULT开始存放,由过程SAVE保存到文件OUTPUT1.DAT中。
填空BEGIN和END之间已给出的一段源程序使其完整(空白己用横线标出,每行空白一般只需一条指令,但采用功能相当的多条指令亦可),或删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
对程序必须进行汇编,并与IO.OBJ链接产生PROG1.EXE执行文件,最终运行程序产生结果(无结果或结果不正确者均不得分)。调试中若发现整个程序中存在错误之处,请加以修改。
试题程序:
EXTRN LOAD: FAR, SAVE: FAR
N EQU 20
DSEG SEGMENT
L DW
SOURCE DW N DUP( )
RESULT DW N DUP(0)
NAME0 DB ’INPUT1. DAT’, 0
NAME1 DB ’OUTPUT1. DAT’, 0
DSEG ENDS
SSEG SEGMENT STACK
DB 128 DUP( )
SSEG ENDS
CSEG SEGMENT
ASSUME CS: CSEG, DS: DSEG, SS: SSEG
START PROC FAR
PUSH DS
[简答题]请编制程序,其功能为:从SOURCE开始的内存区域存放着N个字节的有符号数。现找出最大的数,结果存放到RESULT 指示的,其后存放原N个数逻辑取反后的值。
例如:
数据为:09H,7EH,89H,F6H,17H……67H(N个数据)
结果为:7EH (最大数),F6H,81H,76H,0CH,E8H……98H(原N个数的逻辑反)
部分程序已经给出,其中原始数据由LOAD过程从文件INPUT1.DAT 中读入从SOURCE开始的内存单元,运算结果要求从RESIULT开始存放,由SAVE 过程保存到OUTPUT1.DAT 文件中。请在BEGIN和END 之间补充使其完整,完成要求的功能。或删除BEGIN和END 之间原有的代码井自行编程来完成要求的功能。
对程序必须进行汇编,并与IO. OBJ 链接产生PROG1. EXE 执行文件,最终产生运行结果。
部分程序如下;
;PROG1. ASM
EXTRN LOAD: FAR,SAVE:FAR
N EQU 30
DSEG SEGMENT
SOURCE DW N DUP ( )
RESULT DW N DUP (0)
NAME0 DB ’INPUT1.DAT’,0
NAME1 DB ’OUTPUT1.DAT’,0
DSEG ENDS
SSEG SEGMENT STACK
DB 128 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
MOV ES,AX
LEA DX,SOURCE
LEA SI,NAME0
MOV CX,N
CALL LOAD
; *** BEGIN ***
______