设从外部每个存储单元可以存放STI起,存放两个无符号8位二进制数,要求比较其大小,将大数放入STI+2单元中?

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

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

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

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

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

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

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

无符号整数是什么值为43也是字符+嘚ASCII

你对这个回答的评价是

我要回帖

更多关于 每个存储单元可以存放 的文章

 

随机推荐