早教吧 育儿知识 作业答案 考试题库 百科 知识分享
早教吧考试题库频道 --> 计算机类考试 -->计算机三级 -->

编制一个程序,实现如下功能:将内存中连续存放的10个八位二进制无符号数按照从大到小的顺序排列。

题目

编制一个程序,实现如下功能:将内存中连续存放的10个八位二进制无符号数按照从大到小的顺序排列。

例如:

内存中有:3EH,0FEH,5DH……(假设后面的7个数都小于3EH)

结果为: 0FEH,5DH,3EH……(后面跟7个字,按照从大到小的顺序排列)。

部分程序已经给出,其中原始数据由过程LOAD从文件INPUT.DAT中读入以SOURCE开始的内存单元中。运算结果要求从RESULT开始的内存单元存放,由过程SAVE保存到文件OUTPUT.DAT中。

请填空BEGIN和END之间已给出的源程序使其完整,空白已经用横线标出,每行空白一般只需要一条指令,但采用功能相当的多条指令也行,考生也可以删除BEGIN和END之间原有的代码并自行编程来完成要求的功能。

对程序必须进行汇编,并与IO.OBJ链接产生可执行文件,最终运行程序产生结果。调试中若发现整个程序中存在错误之处,请加以修改。

【试题程序】

EXTRN LOAD:FAR,SAVE:FAR

N EQU 10

SSEG SEGMENT STACK

DB 256 DUP (?)

SSEG ENDS

DSEG SEGMENT

SOURCE DB N DUP (?)

RESULT DB N DUP (0)

NAME0 DB 'INPUT.DAT',0

NAME1 DB 'OUTPUT.DAT',0

DSEG 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 ********

MOV SI,OFFSET SOURCE

MOV DI,OFFSET RESULT

MOV CX,N

AGAIN0: MOV AX, [SI]

MOV [DI],AX

ADD SI, (1)

(2)

LOOP AGAIN0

CLD

MOV BX,N-1

AGAIN1: MOV SI,OFFSET RESULT

MOV CX,BX

AGAIN2: LODSB

CMP [SI],AX

(3)

XCHG [SI],AX

(4)

NEXT: LOOP AGAIN2

(5)

JNZ AGAIN1

;******** END ********

LEA DX,RESULT

LEA SI,NAME1

MOV CX,N

CALL SAVE

RET

START ENDP

CSEG ENDS

END START

参考答案
正确答案:(1)1 (2)ADD DI1 (3)JBE NEXT (4)MOV[SI-1]AX (5)DEC BX
(1)1 (2)ADD DI,1 (3)JBE NEXT (4)MOV[SI-1],AX (5)DEC BX 解析:本题是一道降序排列题,程序首先是将以SOURCE开始的内存单元中的数据传送到RESULT中,利用循环AGAIN0实现。在循环中,需要不断地改变指针,但由于题中的变量为字节型,因此指针的改变为1,即第一个空白处应填1。指向SOURCE的指针增加1的时候,指向RESULT的指针也应该增加1,所以第二个空白处应填ADD DI,1。
接下来的程序便是对数据进行从大到小排列,CLD使指针向着增加的方向移动。在对两个数据进行比较后,因为要求从大到小排列,所以小的数据要往后移,若后面的数据较小,则不需要交换,直接进行下一次比较,所以第三个空白处应填JBE NEXT。若后面的数据大,则在进行数据交换以后需要将大的数据装入前面的存储单元,因此第四个空白处应填MOV[SI-1],AX。每一轮比较后,参加比较的数据的较小者都被放到了最后,这样只需要N-1轮比较就可以得到正确的排序。排序轮次的控制由BX寄存器来实现,因此最后一个空白处应填DEC BX。
看了编制一个程序,实现如下功能:将...的网友还看了以下:

下列各项中加点字读音全都不相同的一项是(3分)()A.跑步跑龙套泡沫如法炮制含苞欲放B.结实结晶体 语文 2020-05-14 …

环保部是如何控制环境污染的?自然灾害,污水排放这些是怎么控制?有人知道请详细回答.如何控制人为环境 其他 2020-05-16 …

初始排污权的定义是什么?污染物排放总量指标向环境直接或间接排 有何区别?间接排放(入管网)如何控制 其他 2020-05-17 …

放线菌素D作用于RNA的具体机制是什么?就是从分子生物学的角度说一下放线菌素D如何嵌入DNA中,如 语文 2020-06-25 …

水库放水闸门开度如何控制已知放水流量Q为2.5m³/s总放水1000万立方米,闸门宽3米.请问闸门 政治 2020-06-30 …

腌制品中制癌物质亚硝基盐如题,腌制品会生成制癌物质,亚硝基盐.这玩意是由硝盐导致的吗?据了解,市场 其他 2020-07-01 …

化学与生产、生活、社会、环境密切相关,下列说法中正确的是()①铝制容器不能盛放酸性或碱性食品,但可 化学 2020-07-24 …

如图是制作面包的过程,请结合图示回答下列问题:(1)将生面团在30℃保温1小时后,它的体积将会,此时 语文 2020-11-06 …

英语翻译1、时间与帧数对动画时间的基本考虑是放映速度:电影和电视的放映速度是24帧/秒,而动画片一般 英语 2020-12-22 …

下列词语中,加横线字读音全部正确的一项是()A.沉淀diàn百花绽放dìng挑衅tiāo挑拨离间ti 语文 2021-01-13 …