首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
编制一个程序,其功能为:内存中以8位无符号数形式连续存放着10个数据,这数据来自于一个自动抄表系统记录的10个用户某月天然气的使用量(立方米),天然气费计算公式如下(其中,X表示天然气用量,Y表示应该天然气费): a)Y=X×80 X≤8
编制一个程序,其功能为:内存中以8位无符号数形式连续存放着10个数据,这数据来自于一个自动抄表系统记录的10个用户某月天然气的使用量(立方米),天然气费计算公式如下(其中,X表示天然气用量,Y表示应该天然气费): a)Y=X×80 X≤8
admin
2010-09-01
79
问题
编制一个程序,其功能为:内存中以8位无符号数形式连续存放着10个数据,这数据来自于一个自动抄表系统记录的10个用户某月天然气的使用量(立方米),天然气费计算公式如下(其中,X表示天然气用量,Y表示应该天然气费):
a)Y=X×80 X≤8
b)Y=8×80+(X-8)×120 X>8
计算每个用户需要交的天然气费,结果用字表示,并将结果存入指定单元。
例如:
用天然气量为:05H,07H,12H……
则天然气费为:0190H,0348H,0780H……
部分程序已经给出,其中原始数据由过程LOAD从文件INPUT.DAT中读入以SOURCE开始的内存单元中。运算结果要求从RESULT开始的内存单元存放,由过程SAVE保存到文件OUTPUT.DAT中。
请填空BEGIN和END之间已给出的源程序使其完整,空白已经用横线标出,每行空白一般只需要一条指令,但采用功能相当的多条指令也行,考生也可以删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。
对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。
[试题程序]
TRN AD:FAR,SAVE:FAR
N EQU 0
DSEG EGMENT
SOURCE DB DUP(?)
RESULT DW DUP(0)
NAME0 DB INPUT.DAT’,0
NAME1 DB OUTPUT.DAT’,0
DSEG NDS
SSEG EGMENT TACK
B 56 DUP(?)
SSEG NDS
CSEG EGMENT
SSUME CS:CSEG,DS:DSEG,SS:SSEG
START ROC AR
USH S
OR AX,AX
USH AX
OV AX,DSEG
OV DS,AX
EA DX,SOURCE
EA SI,NAME0
OV CX,N
ALL OAD
; ********* BEGIN ********
EA SI,SOURCE
EA DI,RESULT
LD
OV CX,N
OV DL,80
OV DH,120
AGAIN: MOV AL,[SI]
MP AL,8
(1)
UL DL
MP NEXT
BIGGER: (2)
UB AL,8
(3)
DD AX,BX
NEXT: (4)
(5)
NC SI
OOP GAIN
; ***+**** END ********
EA DX,RESULT
EA SI,NAME1
OV CX,N*2
ALL AVE
ET
START ENDP
CSEG NDS
END START
选项
答案
(1)JA BIGGER (2)MOV BX,80*8 (3)MUL DH (4)MOV[DI],AX (5)ADD DI,2
解析
本题也是一个分段函数问题,题目所要求的功能可用一个循环程序和几个分支程序来完成,又由于只分两种情况,因此用两个分支程序即可实现。
在程序中,首先将乘法要使用的系数放到了DL和DH中,然后进入循环程序。循环程序中,首先将第一个数据取入AL后,对其进行判断,如果小于8的话,则直接执行乘以80的操作,否则要跳转到其他地方执行。由于是大于8的时候进行跳转,因此应该使用JA指令。同时如果跳转到AGAIN的话,则已经取下一个数据,而此时这个数据还未处理完,因此不能是 AGAIN;如果跳转到NEXT,NEXT后的程序有两个空白、一条ADD和一条LOOP语句,两个空白处显然无法将表达式b求出,因此NEXT也不是,所以JA跳转的语句只能是BIGGER,即第一个空白处的内容是JA NEXT。程序运行到BIGGER之后的程序段的时候,执行的是表达式b的内容。程序中有一条SUBAL,8的语句,显然这是在进行表达式b第二个式子的计算,所以接下来语句的功能是乘以120,即MUL DH,这也就是第三个空应该填的内容。在第三个空的下面有一条ADD AX,BX的语句,这是执行表达式b的加法操作,所以程序的前面的部分必须有将8×80送入BX寄存器的语句,即第二个空应填MOV BX,8*80。
到此为止,程序已经完成了对一个数据的处理,下面应该进行的是存储操作与循环。NEXT后面的程序对运算的结果进行存储并控制整个循环。程序计算的结果要送入RESULT中,指针D¨旨向的正是RESULT存储单元,所以直接传送即可,即第四个空白处的内容为MOV [DI],AX。数据存储完毕以后,应该进行的就是指针的修改,为下一次循环做准备,RESULT是用 DW来进行定义的,所以指针DI每次的改变量应该为2,即第五个空白处应填的内容为ADD DI,2。
转载请注明原文地址:https://www.kaotiyun.com/show/ZTgZ777K
本试题收录于:
三级PC技术题库NCRE全国计算机三级分类
0
三级PC技术
NCRE全国计算机三级
相关试题推荐
以下术语都是用来度量软件结构的,其中表示“从根模块到最底层模块的层数”的术语是
关系模型有3类完整性约束:实体完整性、参照完整性和用户定义的完整性,哪(些)类完整性是关系模型必须满足并由DBMS自动支持的?
用结构化开发方法研制信息系统,需要分阶段进行,下列______不是信息系统开发包含的内容。
实体完整性要求主属性不能取空值,这一点可以通过()来保证。
软件测试是软件开发过程中的重要阶段,它是软件质量保证的重要手段,下列哪个(些)是软件测试的任务?Ⅰ.预防软件发生错误Ⅱ.发现改正程序错误Ⅲ.提供诊断错误信息
J.Martin将建立企业模型的过程分为3个阶段,下述Ⅰ.开发表示企业各职能范围的模型Ⅱ.扩展模型,使它们表示企业各处理过程Ⅲ.定义企业处理过程所需数据类Ⅳ.继续扩展模型,使它能表示企业各处理过程哪个不属于建立企业模型的3个阶段?
软件从需求分析开始到设计编码和测试为止,属于软件生命周期中的______。
CPU中的运算器的主要功能为()。
显示存储器的容量是显示卡的重要性能指标之一,它直接影响着可以支持的显示器分辨率和颜色数目。例如一台彩显的分辨率是1280×1024,像素深度为24位,则显示存储器容量至少应有
微处理器对I/O口的编址方式有两种。一种是将I/O口地址和存储器地址统一编址,把I/O口地址看作存储器地址的一部分,用存储器访问指令实现输入输出;另一种是将I/O口地址和存储器地址分别独立编址,采用专门的【】指令对I/O口进行操作。
随机试题
试述加强组织公关管理的意义。
前置胎盘的临床表现,下述哪项是错误的
A.急性闭角性青光眼B.虹膜睫状体炎C.急性流行性出血性结膜炎D.单纯疱疹病毒性角膜炎E.急性卡他性结膜炎
芍药汤中用大黄体现的治法是
与四逆散组方较为接近的方剂是方中含有桂枝汤全部药味的方剂是
下列有关销售发票的叙述,正确的有()。
A、B企业均为一般纳税企业。A企业于1995年6月30日向B企业出售产品一批,其价款为1000万元,应收增值税170万元;B企业于同年6月30日开出期限为6个月,票面利率为10%的商业承兑汇票,抵充购买产品的价款。票据到期日,B企业未按期兑付票据款,A企
关于ISO9000:2000标准给出的以过程为基础的质量管理体系模式所确定的四个过程,下列说法不正确的是()。
下列关于执法的诚实守信原则的表述,不能成立的是()。
请编函数fun,其功能是将一个数字字符串转换成与其面值相同的长整型整数。可调用strlen函数求字符串的长度。例如,在键盘输入字符串2345210,函数返回长整型数2345210。注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun指定的部
最新回复
(
0
)