单片机用51汇编实现冒泡.doc_第1页
单片机用51汇编实现冒泡.doc_第2页
单片机用51汇编实现冒泡.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机作业题目要求:用冒泡排序法实现将一组无序的数据从小到大的排列(本人设计的程序实现的是8个无序数字的排序)。程序设计:程序实现(已做详细注释):;=; 文件名称: Asm2.asm; 功能描述: 冒泡排序,升序;= ORG 0000H ;程序的加载地址 LJMP MAIN ;程序加载后执行的第一条语句,即跳刀main函数 ORG 0100H ; ;MAIN:MOV R0,#07H ;MOV 20H,#34H ;把数据存到起始地址为20H的内存中MOV 21H,#23H ;把数据存到起始地址为21H的内存中MOV 22H,#89H ;把数据存到起始地址为22H的内存中MOV 23H,#30H ;把数据存到起始地址为23H的内存中MOV 24H,#22H ;把数据存到起始地址为24H的内存中MOV 25H,#01H ;把数据存到起始地址为25H的内存中MOV 26H,#20H ;把数据存到起始地址为26H的内存中MOV 27H,#86H ;把数据存到起始地址为27H的内存中MOV 28H,#38H ;把数据存到起始地址为28H的内存中MOV 29H,#76H ;把数据存到起始地址为29H的内存中LOOP1: MOV R1,#20H ;R1指向数据首地址 MOV A,R0 ; MOV R2,A ;把进行一次冒泡的次数存到R2中 LOOP2: MOV A,R1 ;比较开始,取第一个数 MOV R3,A ;简单的转存一下前一个数,腾出累加器 ;A INC R1 ; 指向下一个地址 SUBB A,R1 ;取后一个数 ,并与前一个数相减,看是否有CY位溢出,溢出则说明前一个数小,要换位 JC LOOP3 ;前一个数小的情况下,两个数交换位 置,否则,继续执行 MOV A,R3 ;把后一个数存到累加器下 XCH A,R1 ;累加器的数与R1指向的数交换 ;位置, 即 ;前一个数和后一个数交 ; 换位置 DEC R1 ;R1自减,准备将后面的数存到前面 MOV R1,A ;将后面的数存到前面 INC R1 ;R1自增,准备下次转换 LOOP3: DJNZ R2,LOOP2 ;R2自减,为下次冒泡准备 DJNZ R0,LOOP1 ;跳回去进行下一轮冒泡 SJMP $ ;程序结束END程序调试:1. 单步调试,展示内存中存入的无序的数据存入时的代码:MOV 20H,#34H ;把数据存到起始地址为20H的内存中MOV 21H,#23H ;把数据存到起始地址为21H的内存中MOV 22H,#89H ;把数据存到起始地址为22H的内存中MOV 23H,#30H ;把数据存到起始地址为23H的内存中MOV 24H,#22H ;把数据存到起始地址为24H的内存中MOV 25H,#01H ;把数据存到起始地址为25H的内存中MOV 26H,#20H ;把数据存到起始地址为26H的内存中MOV 27H,#86H ;把数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论