私はこの.asmコードを完了するのに非常に悩まされています。 この結果は、Insertion_Sortを使用して、順番に印刷する必要があります。x86アセンブリ:初心者としてInsertion_sortをプログラミング
アルゴリズムのロジックが間違っている場合は、実際にBubble_Sortを試しました。私はあなたにこのコードを読むように依頼したいと思います。どんな助言も大歓迎です。私は本当に私が逃したものを知りたい。
バブルソートのrltも非常に奇妙です。私はasmでどのようにデバッグするのか分からないので、コードを何度も何度も読んでいるだけです。 。ヘルプの絶望)
%include "asm_io.inc"
section .data
array dd 3,1,5,7,2,8,4,9,6,10
size dd 10
segment .bss
next resw 1
segment .text
global main
main:
enter 0,0
pusha
; Insertion Sort Start from here
mov eax,[array+4*ecx]
mov [next], eax
; j = i-1
mov ebx, ecx
dec ebx
while2:
cmp ebx,0
jl EndLoop2
mov eax, [next]
cmp [array+4*ebx],eax
jle EndLoop2
;array[j+1] = array[j]
mov eax, [array+4*ebx]
mov [array+4*(ebx+1)], eax
; j--
dec ebx
; Go back to the top of this loop
jp while2
EndLoop2:
mov eax, [next]
mov [array+4*(ebx+1)],eax
inc ecx
jmp while1
EndLoop1:
mov ecx,0
nextInt:
mov eax, [array+4*ecx]
call print_int
call print_nl
inc ecx
cmp [size], ecx
jne nextInt
popa
mov eax, 0
leave
ret
asmでデバッグする方法を学ぶ必要があります。各asm命令は1つのことしか実行しないので、高水準言語をデバッグするよりもはるかに簡単です。 (すると、 'jp'で面白いことに気付くでしょう。) –
自分でデバッガを手に入れよう!利用可能なものがたくさんあります。プログラムが何かを理解するのは、それが逐一実行されるときに見ることができます。質問をするのを忘れてしまったことに気づきます。あなたの質問は何ですか? –