0
私は挿入ソート用のプログラムで作業していましたが、動作させることができません。誰かが私が間違っていることを教えてもらえますか?ちょうどenterArray
の手順を無視して、私は今アルゴリズムを理解しようとしています。アセンブリで挿入ソートをどのようにしますか?
TITLE Insertion Sort (main.asm)
INCLUDE Irvine32.inc
.data
myArray SDWORD 12, 9, 15, 5
str1 byte "Enter the array: " ,0
str2 byte "The sorted array is: ",0
.code
main PROC
call Clrscr
;call enterArray
call InsertionSort
exit
main ENDP
enterArray PROC
;reads the array from the console
pushad
mov edi, OFFSET myArray
mov edx, OFFSET str1
call WriteString
call ReadInt
mov [edi], eax
add edi, 4
popad
ret
enterArray ENDP
InsertionSort PROC
pushad
mov ecx, SIZEOF myArray -1
mov eax, OFFSET myArray
outterloop:
mov edx,myArray[eax]
mov ebx,eax
beginwhile:
cmp ebx,0
JE endwhile
cmp myArray[ebx-4],edx
JNG endwhile
mov edx,myArray[ebx]
mov myArray[ebx-4],edx
sub edx,4
JMP beginwhile
endwhile:
add eax,4
LOOP outterloop
popad
ret
InsertionSort ENDP
END main
mov ebx、eax begin: cmp ebx、0'なぜ 'eax'を' ebx'に移動していますか?なぜただ一つの 'eax'に固執しないのですか? – John