[解決済み】アセンブリ言語での配列のバブルソート
2022-02-03 11:46:03
質問
7つの整数からなる未整理の配列を、9,6,5,4,3,2,1 のようにバブルソートする必要があります。
私のコードをコンパイラーにかけたところ、次のように表示されました。
このコードのどこが問題なのか理解できません。
code segment
assume ds:code,cs:code
start:
mov ax,code
mov ds,ax ;code start
ARR: dw 1,2,4,3,6,5,9
mov ch,0h
mov cl,1h
mov bh 7h
jmp assign_nums
restart:
mov ch,0h
mov cl,1h
dec bh
jmp assign_nums
swap:
mov ch,dl
mov cl,dh
jmp next
next:
cmp bh,cl
je restart
add ch,1h
add cl,1h
jmp assign_nums
assign_nums:
cmp bh,0h
je done
mov dh,[ARR+ch]
mov dl,[ARR+cl]
cmp dh,dl
jl swap
jnl next
done:
nop
code ends
end start
解決方法は?
1つ目のエラーは、registerとimmediateの間にコンマを入力するのを忘れています。
2番目と3番目のエラーは、CHとCLレジスタはメモリのアドレッシングに使用できません。代わりにSI,DI,BXを使用してください。
配列はワードで定義されているので、ワードとして扱わなければなりません。
変更
mov dh,[ARR+ch]
mov dl,[ARR+cl]
を次のようなものに変更します (他の選択にもよりますが)。
mov ax,[ARR+si]
mov dx,[ARR+di]
配列が命令の中に入っていることに注意してください。これではコンパイルしたとたんにプログラムがクラッシュしてしまいます。配列はプログラムの別のデータセグメントに置くか、この行を飛び越えてください。
start:
mov ax,code
mov ds,ax
jmp start2
ARR: dw 1,2,4,3,6,5,9
start2:
mov ch,0h
関連
-
[解決済み] Luaで2次元配列を作成するには?
-
[解決済み] 配列をヒープ化するためのヒープにおけるsiftUp, siftDown操作
-
[解決済み] Ruby: ハッシュの配列で Enumerator を取得しようとすると nil:NilClass の未定義メソッド `[]' が発生する。
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 配列からArrayListを作成する
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] PHPで配列から要素を削除する
-
[解決済み】オブジェクトの配列を文字列のプロパティ値でソートする
-
[解決済み】配列に何かを追加する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 配列から要素を1つだけ値で削除する方法
-
[解決済み] Luaで2次元配列を作成するには?
-
[解決済み] 配列から要素を1つだけ値で削除する方法
-
[解決済み] jsonに複数の値を1つのキーで格納する
-
[解決済み] int (*p)[10]=s と int (*o)[5]=&s の違いは何ですか?
-
[解決済み] glVertex3fvとglVertex3fの相違点
-
[解決済み] MATLABのnumel関数とlength関数の違いについて
-
[解決済み] Twigでの出力配列
-
[解決済み] SwiftでUInt8バイト配列を文字列に変換する方法
-
[解決済み] GCCです。配列型に不完全な要素型がある