当前位置: 答题翼 > 问答 > 计算机类考试 > 正文
目录: 标题| 题干| 答案| 搜索| 相关
问题

编制一个程序 其功能为:内存中以8位无符号数形式连续存放着10个数据 这数据来自于一个自动抄表系


编制一个程序,其功能为:内存中以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

请帮忙给出正确答案和分析,谢谢!

参考答案
您可能感兴趣的试题
  • 在程序运行过程中,CPU 需要将指令从内存中取出来并加以分析和执行。CPU 依据() 来区分在内存中以

  • 在程序运行过程中,CPU需要将指令从内存中取出并加以分析和执行。CPU依据()来区分在内存中以二进

  • 虚拟存储系统能够为用户程序提供一个容量很大的虚拟地址空间 其大小受到()的限制。A.内存实际容量

  • 在程序运行过程中 CPU 需要将指令从内存中取出来并加以分析和执行。CPU 依据() 来区分在内存中以

  • 虚拟存储系统能够为用户程序提供一个容量很大的虚拟地址空间 其大小受到()的限制。A.内存实际容量

  • 请编制程序PROG1.ASM 其功能是:内存中连续存放着二个有符号字节序列Ak和Bk 求序列Ck(Ck=Ak+Bk)。