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

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

时间:2023-03-22 22:01:30浏览次数:35  
标签: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/17245622.html

相关文章

  • 8086汇编语言学习1-loop循环实现冒泡排序
    关键点:  1.loop指令的原理、断点位置  2.条件转移指令JNLE(小于或等于)和JG(大于)、与CMP(比较)一起使用DATASEGMENTAdw1,3,4,2,5DATAENDSCODESEGMENT AS......
  • 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;默认设定为最大,......