首页 > 编程语言 >8086汇编语言学习1-loop循环实现冒泡排序

8086汇编语言学习1-loop循环实现冒泡排序

时间:2023-03-22 21:45:24浏览次数:47  
标签:8086 CODE DATA MOV 冒泡排序 CX AX BX loop

关键点:

  1.loop指令的原理、断点位置

  2.条件转移指令JNLE(小于或等于)和JG(大于)、与CMP(比较)一起使用

DATA SEGMENT
A dw 1,3,4,2,5
DATA ENDS
CODE SEGMENT
	ASSUME CS:CODE,DS:DATA
START:	MOV	AX,DATA
	MOV	DS,AX
	;MOV	BX,OFFSET A;待排序内容的偏移地址

	MOV	CX,5;5个数,循环5次
	;DEC	CX;自减1,第一轮要比较4次?不太确定
loop1:	MOV	DI,CX;DI存放CX,起到保护作用
	MOV	BX,0;BX存放偏移地址

loop2:	MOV	AX,A[BX];有[],是存储器寻址方式里的相对寄存器寻址,间址寄存器为BX,用DS内容作为段基址
	CMP	AX,A[BX+2];比较大小,+2是由于每个数据是字定义,1字=2字节(8086)
	JNLE	CONTINUE;AX更大,不用替换,转移
	XCHG	AX,[BX+2];AX更小,交换,AX始终存放大的那个数,第n轮结束后,第5-n+1个数是余下5-n+1个数里最小的
	MOV	A[BX],AX;用AX作为交换媒介
CONTINUE:
	ADD	BX,2
	LOOP	loop2
	MOV	CX,DI;恢复CX,循环时CX会自减
	LOOP	loop1

	MOV	AH,4CH
	INT	21H
CODE ENDS
	END START

 

 

标签:8086,CODE,DATA,MOV,冒泡排序,CX,AX,BX,loop
From: https://www.cnblogs.com/cqu-Ryoma/p/17245572.html

相关文章

  • iOS之RunLoop - 前期准备:RunLoop运行逻辑
    什么是RunLoop1-RunLoop即运行循环:在程序运行中循环做一些事情2-RunLoop应用范围① 定时器(Timer)、PerformSelector② GCDAsyncMainQueue③ 事件响应、手......
  • 【Android】Message、Handler、MessageQueue、Looper 详解
    1前言​Handler即处理器,常用于跨线程通讯:线程A和线程B拥有同一个handler对象,在线程A中使用handler的sendMessage()方法发送消息,在线程B中使用handler......
  • 二维数组冒泡排序
    0.本文结构概述二维数组在内存中是线性存储二维数组排序(C语言代码)1.二维数组在内存中是线性存储2.二维数组排序(C语言代码)#include<stdio.h>intmain(intarg......
  • 【基础算法】简单排序-冒泡排序
    【基础算法】简单排序-冒泡排序BubbleSortisthesimplestsortingalgorithmthatworksbyrepeatlyswappingtheadjacentelementsiftheyareinthewrongorde......
  • 一个乱七八糟的冒泡排序
    Input:任意多组数据(保证最多只有5组)对于每组数据,有两行数第一行数n,代表接下来将有n个数第二行数有n个乱序数注意:冒泡排序的越界#include<iostream>usingnamespac......
  • 对n个整数冒泡排序
    对n个整数数进行冒泡排序步骤:首先需要一个整形数组来存放整数,然后输入n个数到数组中去然后对数组中的值两两比较,把最大(小)的放到最后去#include<stdio.h>#defineMAX......
  • c代码实现冒泡排序
    #define_CRT_SECURE_NO_WARNINGS#include<stdio.h>voidbubble_sort(intarr[],intsz){inti=0;for(i=0;i<sz-1;i++){intj=0;for(j=0;......
  • 漫画:什么是冒泡排序算法?
    面试官:写一个冒泡排序吧冒泡排序是一个比较经典和简单的排序算法,今天我们从从算法本身,时间复杂度以及稳定性方面来看看冒泡排序,这些方面也是研究其他排序算法的一般思......
  • android Loopback回路测试有啸叫,回音
    解决loopback啸叫回音的基本方法是减小音量使用afeloopback时可修改: AudioLoopbackController.cpp中的值staticconstfloatkMaxMasterVolume=1.0;默认设定为最大,......
  • 冒泡排序
    1.描述:冒泡排序是一种常见的排序方法,遍历若干个需要排序的数列,依次比较相邻两个数值的大小,前者比后者大调换位置,渐进式循环后大的数值都会在最后,重复此操作直到出现有序的......