HLA汇编语言,冒泡排序如何改为选择排序

问题遇到的现象和发生背景

program ArraysSort;
#include ("stdlib.hhf");

const NumElements := 10;
static
    Sort : uns32 [NumElements] :=[12, 14, 20, 43, 56, 29, 35, 30, 68, 55];
    
    swapped: boolean := true;
    
begin ArraysSort;


    stdout.newln();
    
    stdout.put ("Bubble Sort, Number of Array Elements: ", Sort , nl);
    stdout.put ("Original Array Elements:", nl);
    for (MOV (0, EBX); EBX < NumElements; INC(EBX))do
        stdout.puti32Size(Sort [EBX*4], 3 , ' ');
    endfor;
    stdout.newln();
    
    stdout.put("---Start Sorting---")
    stdout.newln();
    
    while(swapped) do
        MOV (false, swapped);
        
        for(MOV (0, EBX); EBX < NumElements -1; INC(EBX)) do
            MOV (Sort[EBX*4], EAX);
            
            if (EAX > Sort [EBX*4 + 4] )then
            
                MOV (Sort [EBX*4 + 4], ECX);
                MOV (ECX, Sort [EBX*4]);
                MOV (EAX, Sort [EBX*4+4]);
                
                MOV (true, swapped);
                
            endif;
            
            stdout.puti32Size (Sort [EBX * 4], 3 , ' ');

        endfor;
        
        stdout.puti32Size (Sort [EBX*4], 3, ' ');
        stdout.newln();
    
    endwhile;
    
    stdout.newln();

    stdout.newln();
    
end ArraysSort;

操作环境、软件版本等信息

使用的编译器为NotePad++

尝试过的解决方法
我想要达到的结果

这段High Level Assembler如何在if语句中把冒泡改成选择排序

 
program ArraysSort;
#include ("stdlib.hhf");
 
const NumElements := 10;
static
    Sort : uns32 [NumElements] :=[12, 14, 20, 43, 56, 29, 35, 30, 68, 55];

    swapped: boolean := true;
    
begin ArraysSort;

    stdout.newln();
    
    stdout.put ("Bubble Sort, Number of Array Elements: ", Sort , nl);
    stdout.put ("Original Array Elements:", nl);
    for (MOV (0, EBX); EBX < NumElements; INC(EBX))do
        stdout.puti32Size(Sort [EBX*4], 3 , ' ');
    endfor;
    stdout.newln();
    
    stdout.put("---Start Sorting---")
    stdout.newln();
    
    for(MOV (0, EBX); EBX < NumElements; INC(EBX)) do
        MOV (EBX, EAX);
        MOV (EBX, EDX);
        MOV (false, swapped);
        for(INC(EDX); EDX < NumElements; INC(EDX)) do
            MOV (Sort [EDX*4], ECX);
            if (ECX < Sort [EAX*4] )then
               MOV (EDX, EAX);
               MOV (true, swapped);
            endif;               
        endfor;

        if (swapped)then
         MOV (Sort [EBX*4], ECX);
         MOV (Sort [EAX*4], Sort [EBX*4]);
         MOV (ECX, Sort [EAX*4]);
       
         for (MOV (0, ECX); ECX < NumElements; INC(ECX))do
             stdout.puti32Size(Sort [ECX*4], 3 , ' ');
         endfor;
         stdout.newln();
        endif;
    endfor;
    
end ArraysSort;