编制一个程序,其功能为:内存中以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 DS
XOR AX,AX
PUSH AX
MOV AX,DSEG
MOV DS,AX
LEA DX,SOURCE
LEA SI,NAME0
MOV CX,N
CALL LOAD
; ******** BEGIN *********
LEA SI,SOURCE
LEA DI,RESULT
CLD
MOV CX,N
AGAIN: MOV AL,[SI]
CMP AL,6
JA (1)
(2)
JMP NEXT
LIMIT6:CMP AL,10
JA (3)
(4)
JMP NEXT
LIMIT10: (5)
NEXT: MOV [DI],AX
INC SI
ADD DI,2
LOOP AGAIN
; ******** END ********
LEA DX,RESULT
LEA SI,NAME1
MOV CX,N*2
CALL SAVE
RET
START ENDP
CSEG ENDS
END START
相关热点: 天然气
相关问题推荐
净化厂天然气预处理设备的主要作用是()。
A、分离原料天然气中夹带的固体和液体杂质
B、降低原料天然气温度
C、提升原料天然气压力
D、脱除原料天然气中的有机硫
A.生产天然气的油田
B.出口天然气的石化公司
C.销售天然气的天然气公司
D.使用天然气的用户
天然气与液化石油气相比,说法不正确的是()。
A、天然气比液化石油气重,不易散发
B、天然气比液化石油气轻,易散发
C、天然气燃烧产生的污染物多,不利于环保
D、使用天然气不容易发生爆炸
- A天然气的主要成分和瓦斯不同
- B天然气的爆炸极限为4%~15%
- C天然气的密度比空气小
- D天然气无色无味,增大了其危害性
A.天然气的体积
B.天然气中水蒸气的质量
C.天然气的质量
D.天然气的密度