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;