彙編用迴圈巢狀實現氣泡排序

2021-10-01 14:50:00 字數 724 閱讀 2897

data segment 

a dw 2, 5, 6, 8

l equ $-a

data ends

code segment

assume cs:code , ds:data

start:

mov cx, l

shr cx, 1 ; 邏輯迴圈右移指令,移動1位,相當於除以二

dec cx ;迴圈n-1次

loop1:

push cx

xor bx, bx ;兩個數進行異或運算,結果存放在目的運算元中;這相當於把bx制零

loop2:

mov ax, a[bx]

cmp ax, a[bx+2]

jng continue

;不大於則跳轉,否則交換;通過cf和zf判斷

xchg ax, a[bx+2]

;xchg 指令兩個運算元不能同時為記憶體變數

xchg ax, a[bx]

;也不能用段暫存器

continue:

inc bx ;一次操作乙個字,所以自增兩次

inc bx

loop loop2

pop cx

loop loop1

mov ax, 4c00h

int 21h

code ends

end start

彙編實現氣泡排序

感覺。實現一下還是有點意義的。用的是mips指令集,不造是不是過時了。然後參考資料 實現上不敢用保留暫存器,因為用完貌似需要恢復原暫存器的值,所以全部都用臨時暫存器的值 然後遇到了幾個問題 一 變數的定義 主要是在資料段裡幹,資料段用.data標識 然後定義方式是 變數名 變數型別 初始值 eg.a...

彙編 實現氣泡排序 講解

有乙個首位址為a的n字陣列,編寫程式採用氣泡排序使該陣列中的數按照從大到小的次序整序。資料儲存在a的陣列中 即記憶體中 我們需要利用氣泡排序實現從大到小排序。description data segment use16 a dw 8,16 41,22 50n equ a 2 data ends de...

for迴圈實現氣泡排序原理

演算法思想 氣泡排序屬於一種典型的交換排序。交換排序顧名思義就是通過元素的兩兩比較,判斷是否符合要求,如過不符合就交換位置來達到排序的目的。氣泡排序名字的由來就是因為在交換過程中,類似水冒泡,小 大 的元素經過不斷的交換由水底慢慢的浮到水的頂端。氣泡排序的思想就是利用的比較交換,利用迴圈將第 i 小...