循环程序设计
来源:互联网 发布:济南搜索引擎优化外包 编辑:程序博客网 时间:2024/05/18 18:14
题目直接给出:)
一、实验目的: 掌握汇编语言中循环程序的设计与实现,并熟悉数组的使用。熟悉汇编语言 中相应排序算法的实现。
二、实验内容: 设有两个数组 A 和 B,其数据均为 20 个。编程实现将两个数组中的数据各 自按由小到大的顺序存放。之后,再将既在 A 数组中出现又在 B 数组中出现的 整数按照由大到小的顺序存放于数组 C 中。
三、实验步骤:
(1)、分析所要解决的问题,选择合适的循环结构与排序算法。
(2)、自己画出清晰详细的程序流程图。
(3)、编写程序,上机调试运行。
四、实验时间: 共 3 学时。
五、实验要求:
(1)、完成实验报告,画出程序流程图。
(2)、上交程序源代码,要有详细的程序注释。
(3)、要求在屏幕上输出数组A和B排序前及排序后的内容,以及数组C 的内容。
(4)、进一步熟悉汇编程序的撰写、汇编、连接、运行和调试的全过程。
***********************************************************************************************************************
先进行题目分析,步骤共有两个:首先是排序,这里我们选用冒泡排序的算法,由于博客不支持贴图,我们就理解一下就行了,冒泡嘛…………,自古以来流程图都一个样的;其次就是再依次扫描一下A和B两个数组了循环一遍就可以了。
下面我们来具体的代码实现:
首先,定义需要用到的变量:
DATAS SEGMENT A DW 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19 COUNTA EQU ($-A)/2 B DW 19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0 COUNTB EQU ($-B)/2 D DW 20 DUP(?)DATAS ENDS
然后对A和B用冒泡算法排序有(这里给出对A的排序):
;A排序************************************************ MOV CX,COUNTA-1I10:XOR SI,SIXOR DI,DII20:MOV AX,A[SI]MOV BX,A[SI+2]CMP AX,BXJL I30MOV A[SI],BXMOV A[SI+2],AXI30:ADD SI,2INC DICMP DI,CXJB I20Loop I10
按照之前的流程,下面扫描一遍A,B,得出C数组:
MOV AX,COUNTA ADD AX,AX SUB AX,2 MOV SI,AX MOV AX,COUNTB ADD AX,AX SUB AX,2 MOV DI,AX XOR BP,BPI12:CMP SI,0JNE I22CMP DI,0JNE I22JMP I25I22:JNE I23MOV BX,A[SI]MOV D[BP],BXADD BP,2SUB SI,2SUB DI,2JMP I12I23:MOV BX,B[DI]CMP A[SI],BXJG I24SUB DI,2JMP I12I24:SUB SI,2JMP I12I25: MOV AH,4CH INT 21H
这样,我们就得到最终的结果了,现在为止还没有看到排好序的A和B以及新生成的C数组,不用担心,我们可以用前一章的21H中断来输出每一个元素,也可以用debug来看一下内存中的结果。0 0
- 循环程序设计
- 循环程序设计
- 循环程序设计
- 循环程序设计
- 循环结构程序设计
- 五、循环结构程序设计
- 循环结构程序设计
- 5.循环结构程序设计
- 循环结构的程序设计
- 循环结构的程序设计
- windows程序设计 消息循环
- 1.6循环程序设计
- 循环结构的程序设计
- 循环结构的程序设计
- C语言 循环程序设计
- 循环结构程序设计
- Linux程序设计:for循环
- 顺序、选择、循环程序设计
- hdu 1686
- [linux] kernel modules make study.
- html中table设置每个单元格的不同颜色和宽度
- 010.JSP与Servlet交互深入详解
- Spring学习之DI(一)
- 循环程序设计
- 走进设计模式之——序言
- 华为C语言编程规范(6)—变量、结构
- 约瑟夫环问题两解
- POJ-Rebuilding Roads 树形DP
- form表单中input标签的11个高级用法
- QT生成DLL,调用DLL
- STL中的常用的vector,map,set,Sort用法
- 卡尔曼理论学习及公示推导