首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
编制一个程序,其实现的功能为:计算10个带符号字节数据的绝对值之和(和为字型),并且找出绝对值最小的数及其所在的偏移地址,将结果依次存入指定的内存区中,结果以0FH结束。 例如: 内存中有:23H, 14H,00H,08H,PEH, 87H
编制一个程序,其实现的功能为:计算10个带符号字节数据的绝对值之和(和为字型),并且找出绝对值最小的数及其所在的偏移地址,将结果依次存入指定的内存区中,结果以0FH结束。 例如: 内存中有:23H, 14H,00H,08H,PEH, 87H
admin
2009-02-15
35
问题
编制一个程序,其实现的功能为:计算10个带符号字节数据的绝对值之和(和为字型),并且找出绝对值最小的数及其所在的偏移地址,将结果依次存入指定的内存区中,结果以0FH结束。
例如:
内存中有:23H, 14H,00H,08H,PEH, 87H,02H,01H,PPH,01H
结果为:BFH,00H,00H,02H,00H,0FH
部分程序已经给出,原始数据由过程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 DB 6 DUP(0)
MIN DB ?
NAME0 DB ’INPUT.DAT’,0
NAME1 DB ’OUTPUT.DAT’,0
DSEG ENDS
SSEG EGMENT 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
MOV DX,SI
MOV CX,N-1
MOV AL,[SI]
SUB AX,0
JNS NEXT
NEG AL
NEXT: MOV MIN,AL
ADD [DI],AL
(1)
AGAIN: INC SI
MOV AL,[SI]
ADD AL,0
JNS NEXT1
(2)
NEXT1: ADD [DI],AL
(3)
CMP MIN,AL
JBE NEXT2
MOV MIN,AL
(4)
NEXT2: LOOP AGAIN
ADD DI,2
MOV AL,MIN
MOV [DI],AL
INC DI
MOV [DI],DX
ADD DI,2
MOV (5) ,0FH
*********** END *************
LEA DX,RESULT
LEA SI,NAME1
MOV CX,6
CALL SAVE
RET
START ENDP
CSEG ENDS
END START
选项
答案
(1)ADC BYTE PTR [DI+1],0 (2)NEG AL (3)ADC BYTE PTR [DI+1],0 (4)MOV DX,SI (5)BYTE PTR [DI]
解析
程序的整体结构是:先对数据进行判断,若是正数,则直接求和,否则求补以后再进行相加。并且对每个数的绝对值进行比较,绝对值最小的数放在MIN中,绝对值最小数的偏移地址放在DX中。
程序开始进行的是指针的初始化,SI中为SOURCE的偏移地址,DI中为RESULT的偏移地址,并将SOURCE中第一个存储单元的数据和地址分别放在AL和DX中。第一个数装入以后,需要对其进行判断,如果为正数的话,可以接着执行下面的程序段,否则就求出它的绝对值(即对其进行求补操作)。完成操作以后,就可以把第一个数当成比较对象和其他值的绝对值进行比较。首先将AL中的数放入MIN中,然后将其加到RESULT的第一个单元中(即DI所指的地址单元中),在执行加法运算时,要将其进位也加进去,所以第一个空白处应该填的内容是对进位进行相加,即ADC BYTE PTR[DI +1],0。
从第二个数据开始,程序进入循环,即后面的数将执行同一操作:判断是否为正数,若是正数,则直接加入DI所指的单元,否则求补以后再加入。同时,把数据的绝对值与MIN中的内容进行比较,如果数据的绝对值小于MIN则将数据放入M1N中,并且把此时的偏移地址SI存入DX中,否则执行下一次加法与比较操作。因此,对于2~4个空缺处来说,需要完成的就是上述的操作。
执行完加法操作和找出绝对值最小的数以后,接下来便是按照要求对结果进行存储。由于题目要求最后一个存储单元为 0FH,所以最后一步操作应该是存入0FH。由于此时DI已经指向RESULT的最后一个单元,因此可以直接存入。但需要注意的是不能使用MOV [DI],0FH的语句,因为这样将不知道是把0FH存入[DI]单元,还是把0FH和00H存入[DI]和[DI+1]单元,所以应该指定操作数的类型,即MOV BYTE PTR [DI],0FH。
转载请注明原文地址:https://jikaoti.com/ti/cPV7FFFM
本试题收录于:
三级PC技术题库NCRE全国计算机三级分类
0
三级PC技术
NCRE全国计算机三级
相关试题推荐
软件设计分为两个层次:总体设计和详细设计。每个层次的设计都要用到很多设计工具。Ⅰ.HIPO图Ⅱ.程序流程图Ⅲ.N—S图Ⅳ.PAD图Ⅴ.结构图以上哪种(些)属于总体设计阶段使用的工具
办公信息系统的基本功能包括4方面,下面哪条描述不太确切?
程序内部的各个部分之间存在的联系,用结构图表达时,最关心的是模块的内聚性和()。
数据库管理技术随着计算机技术的发展而发展,数据库系统具有许多特点,下面列出的特点中哪一个不是数据库阶段的特点?()
在“学生—选课—课程”数据库中的3个关系如下:S(S#,SNAME,SEX,AGE),SC(S#,C#,GRADE),C(C#,CNAME,TEACHER)查找选修“数据库技术”这门课程的学生的学生名和成绩。若使用连接查询的SQL语句是:
数据库物理设计完成后进入数据库实施阶段,下述工作中,哪一项一般不属于实施阶段的工作?()
在“学生—选课—课程”数据库中的两个关系如下:S(SNO,SNAME,SEX,AGE)SC(SNO,CNO,GRADE)则关系代数表达式πs.sname,sC.grade(σage>20(SSC)等价的SQL命令是SELE
办公信息系统在结构上可分为硬件层、软件层、处理层和应用层,这种技术结构是一种具有什么性能的层次结构?
为了保证CPU执行程序指令时能正确访问存储单元,需要将用户程序中的逻辑地址转换为运行时可由机器直接寻址的物理地址,这一过程称为
信息系统的开发应有专门的研制开发队伍。组成这支队伍的方式一般有下面4种,这4种方式中,我们提倡的是
随机试题
常引起便秘的病因包括
男性患者,45岁,1年半前出现右手无力,拿东西费劲,吃饭困难,后慢慢抬手困难,并逐渐肌肉萎缩,大小鱼际肌及手臂肌肉明显,近半年左手及双下肢逐渐无力、萎缩。查体见构音障碍,咽反射迟钝,转颈力差。双前臂可见肌束颤动,Babinski征(±)无明显客观深浅感觉障
下列氨基酸在体内可以转化为γ-氨基丁酸(GABA)的是()
甲向乙借款10万元准备经营木材生意,并由其好友丙和丁担保。丙以自己的背投式彩电(价值2万元)作担保与乙签订了质押合同,并且将彩电搬到了乙的家里。丁以自己的桑塔纳轿车(价值8万元)作担保与乙签订了质押合同,但乙觉得自己家没地方放车,就允许丁继续开着自己的车。
下列关于个人住房贷款的说法,错误的是()。(2011年)
下列关于资源税的优惠政策的陈述,不正确的是()。
_________是课程资源的核心和主要组成部分。
结合材料回答问题:材料1认识。蚂蚁具有和我们不同的眼睛,它们能看见化学(?)光线,但是,在认识我们所看不见的这种光线方面,我们的成就比蚂蚁大得多。我们能够证明蚂蚁看见我们所看不见的东西,而且这种证明只是以我们的眼睛所造成的知觉为基础,这
Speakinginpublicismostpeople’sleastfavoritething.Thereasonisthatwe’reallafraidofmakingfoolsofourselves.The
A、Financialsecuritymattersalottothem.B、Theychaseeverymarkofthestockmarket.C、They’renotsoconcernedwithmoney.
最新回复
(
0
)