循环结构程序设计和子程序设计

  • 实验内容
  • 算法描述
  • 实验结果
  • 源程序清单

实验内容

设DATA1开始的内存单元中,存放着一串带符号字数据,要求采用冒泡排序算法(Bubble Sort)按照从小到大的顺序排序并将排好序的数据存在DATA2开始的单元。
设DATA1开始的内存单元中,存放着一串带符号字数据,要求采用冒泡排序算法(Bubble Sort)按照从小到大的顺序排序并将排好序的数据存在DATA2开始的单元(循环程序部分已完成)。然后在显示器输出排好序的数据,中间用’,’隔开。
输出数据使用子程序方式。

算法描述

第一部分冒泡排序:
冒泡排序的思想就是执行两重循环,外重循环表示需要执行多少趟,一个数组长度为n的话,只需执行n-1趟,内层循环进行比较,如果当前访问的值比下一个要访问的值大,那么就和下一个值进行交换,反之就直接访问下一个值,重新执行上述操作。然后内层循环每一趟会把可访问的内容中的最大值放到末端,比如第一次内层循环会把最大的值放入第n个位置,然后下次只用访问前n-1个数了,仍然执行相同的操作,知道完成排序,落实到汇编代码就是,外层用loop指令,内层自定义条件循环,实验里面自处理了五个数,所以外层循环只需遍历4次,所以将CX 赋值为4,内层循环使用BX计数,内层进行的操作是让当前位置的值和下一个位置的值进行比较大小,BX累计次数,如果BX内的值小于CX就继续执行,反之执行loop指令,这样即可完成冒泡排序
第二部分将排序结果显示在屏幕上:
选用的是二号功能,在屏幕上显示单个字符,因为ASCII码中只有0~9的数字,所以像655这样的多位数字就需要将其分解,所以整个子程序的流程是:
(1)从DATA2中读取一个数字
(2)判断数字是否为负数,如果是负数先在屏幕上显示“-”,然后将数字取反
(3)如果数字在0~9,直接在屏幕上显示数字,然后从DATA2中取下一个数字,如果到DATA2中数据取完,结束子程序
(4)如果数字在10~99之间,将十位上数字输出,使用除法,将十位与个位分离,执行完毕后执行(3)
(5)如果数字在100~999之间,将百位上的数字输出,使用除法得到百位上的数字,然后执行(4)
(6)如果数字在1000~9999之间,将千位上的数字输出,使用除法得到千位上的数字,然后执行(5)
如果数字在10000以上,将万位上的数字输出,使用除法得到万位上的数字,然后执行(6)

实验结果



执行结果

源程序清单

DSEG SEGMENT
DATA1   DW   80,88,52,19,-45
DATA2   DW  5 DUP(0)
DSEG    ENDS
CSEG    SEGMENTASSUME   CS:CSEG,DS:DSEG
FIRST       PROCLEA SI,DATA2MOV CX,5
HHH:    MOV BX,[SI]CMP  BX,0JL     DOIT
TWOS:   CMP BX,10JGE       ONESMOV  AH,2MOV DL,BLADD    DL,30HINT       21HADD  SI,2CMP CX,1JLE    TTTMOV   AH,2MOV DL,','INT    21H
TTT:    LOOP    HHHJMP  ENDSS
ONES:   MOV AX,BXMOV    DL,10DIV    DLMOV   BL,AHMOV    AH,2MOV DL,ALADD    DL,30HINT       21HJMP  TWOS
DOIT:   NEG BXMOV   AH,2MOV DL,'-'INT     21HJMP  TWOS
ENDSS:  RET
FIRST   ENDP
BEGIN:  MOV AX,DSEGMOV  DS,AXMOV    ES,AXMOV    CX,4
START:  MOV BX,0LEA SI,DATA1
ONE:    MOV AX,[SI]CMP  AX,[SI+2]JLE      TWOMOV   DX,[SI+2]MOV   [SI],DXMOV  [SI+2],AX
TWO:    ADD SI,2INC     BXCMP   BX,CXJB    ONELOOP  START
THREE:  MOV CX,5LEA SI,DATA1LEA DI,DATA2CLDREP  MOVSWCALL   FIRSTMOV    AX,4C00HINT    21H
CSEG    ENDSEND BEGIN

汇编-循环结构程序设计和子程序设计相关推荐

  1. 用python循环结构计算派的值_Python程序设计实验报告四:循环结构程序设计(设计型实验)...

    安徽工程大学 Python程序设计 实验报告 班级  物流191   姓名姚彩琴学号3190505129 成绩 日期     2020.4.8     指导老师修宇 [实验名称]实验四 循环结构程序设 ...

  2. c语言循环设计思想结构,C语言程序设计_05循环结构程序设计讲述.pptx

    C语言程序设计_05循环结构程序设计讲述 第5章 循环结构程序设计5.1 while循环结构5.2 do-while循环结构5.3 for循环结构5.4 与循环有关的控制语句5.5 3种循环语句的比较 ...

  3. c语言设计第六章答案,c语言第六章 循环结构程序设计(习题册答案)

    第六章 循环结构程序设计 基础练习(A) 一.选择题 1.C语言中while和do-while循环的主要区别是(A). A) do-while的循环体至少无条件执行一次 B) while的循环控制条件 ...

  4. 汇编语言实验5:循环结构程序设计

    <汇编语言程序设计>实验报告 实验五 循环结构程序设计 1. 实验目的 2. 实验任务 3. 实验步骤 3.1 循环结构题目设计 3.2 编写代码 3.3 代码分析 3.4 运行测试 4. ...

  5. c语言已知祖父年龄70,实验三循环结构程序设计.doc

    实验三循环结构程序设计 实验三 循环结构程序设计 一.实验目的 (1) 掌握while.do~while.for语句的使用. (2) 掌握循环体内使用break.continue语句的作用. (3) ...

  6. c语言循环程序模板,循环结构程序设计C语言程序

    循环结构程序设计C语言程序Tag内容描述: 1.第5章 循环结构程序设计,C 语言程序设计,北京航空航天大学 交通科学与工程学院 徐国艳,2019/7/12,2,循环的基本概念 不同形式的循环控制 多 ...

  7. c加加高级语言循环结构,高级C语言循环结构程序设计.ppt

    1,高级语言程序设计,孟宇龙计算机科学与技术学院mengyulong@,2,第5章循环结构程序设计,本章需要掌握的内容掌握3种基本循环.掌握多重循环.掌握continue和break的使用.编写循环结 ...

  8. c语言循环结构程序设计教学,高级C语言循环结构程序设计教学教材演示幻灯片.ppt...

    演示文稿演讲PPT学习教学课件医学文件教学培训课件 * 高级语言程序设计 孟宇龙 计算机科学与技术学院 mengyulong@hrbeu.edu.cn * 第5章 循环结构程序设计 本章需要掌握的内容 ...

  9. c语言 用计数控制的循环实现正数累加求和,C语言循环结构程序设计实验五

    福建农林大学实验报告 系(教研室):信息与机电工程系专业:机械设计制造及其自动化年级:2010 实验课程:C语言程序设计姓名:学号:实验室号: 计算机号:实验时间:2012.11.5 指导教师签字:成 ...

最新文章

  1. jenkins 中 Poll SCM 和 Build periodically 的区别
  2. fastreport调用frf文件直接打印_来吧~~ 这里提供自助打印~
  3. linux i o的使用情况,Linux下使用iostat 监视I/O状态
  4. 易度甘特图的功能介绍和开发手册
  5. html5 canvas图文编辑器源码_5个微信编辑器,再也不用为公众号发愁啦
  6. 前端学习(592):使用snippets辅助debugging
  7. 【Elasticsearch】Elasticsearch gateway 流程分析
  8. 机器学习在B站推荐系统的应用实践
  9. VMware虚拟机的网络设置
  10. 中南大学计算机网络期末试卷,中南大学计算机网络期末复习试卷1
  11. 本训练中心主任致互联网技术学员
  12. pads 2007的概述
  13. 【Android】ListView控件总结
  14. Unity3D灯光与渲染学习之(二):全局、烘焙以及混合光照
  15. 中兴新支点操作系统上的快捷键
  16. 【ABAP】 Smartforms 字符串中上标/下标打印实现
  17. 如何将多个excel表格合并成一个_相同表头的多个Excel表格合并成一个Excel表的方法...
  18. RJ45接头 与 RJ48 接头
  19. 解析华为OSPF协议
  20. python建立题库随机抽题,用Python读取Excel题库随机组成Word版本试卷

热门文章

  1. 租用云服务器之前 这些坑你得擦亮眼睛
  2. C语言单链表的排序、查找(通俗易懂)
  3. java批量下载多个阿里云视频
  4. 物联网在数字化医院的广阔应用前景
  5. spring中bean初始化顺序
  6. 追逐自己的梦想----------辅助制作第二十课:完善自动技能打怪
  7. IPS—线束和软管的受力与动态三维仿真
  8. 关于微软2003PPT程序的下载及安装等事宜
  9. Android直播解决方案
  10. 重型鼓音源混音教程|没有鼓手没关系,教你如何用Guitar Pro 5的midi鼓变成真鼓声!(鼠标党必备)| MZD studios