彙編氣泡排序

2021-07-30 06:03:48 字數 1114 閱讀 2503

datas segment

a dw 0,23h,19h,20h,32h,89h,12h,34h,38h,33h,45h,13h,43h,24h,54h,1

count equ ($-a)/2;陣列中元素的個數(位元組)

datas ends

stacks segment

;此處輸入堆疊段**

stacks ends

codes segment

assume cs:codes,ds:datas,ss:stacks

start:

mov ax,datas

mov ds,ax

mov cx,count-1

;外層迴圈陣列元素個數減一

xor dx,dx

loplev1:

xor si,si

push cx

;cx入棧

inc dx

;外迴圈一次dx加1

mov cx,count

;重新賦值cx進行下一輪迴圈

sub cx,dx

;內層迴圈次數減外層迴圈次數,相當於c語言中j-i-1

loplev2:

mov ax,a[si]

mov bx,a[si+2]

cmp ax,bx

;比較大小

jl i10

;ax大於bx執行下面交換,否則跳轉到i10

mov a[si],bx

mov a[si+2],ax

i10:

add si,2

loop loplev2    

pop cx

loop loplev1

;--------------輸出按位輸出---------------------

mov   si, 0

mov   cx, count

lp:or ax, ax

mov dx,a[si]

add dx,30h

mov ah,2   

int 21h

add si,2

loop lp

mov ah,4ch

int 21h

codes ends

end start

彙編 氣泡排序

在emu8086除錯過 assume cs code,ds data data segment array dw 49,38,65,97,76,13,27 要排序的數 count dw array 2 獲取排序數目 data ends code segment start mov ax,data m...

彙編 氣泡排序。。。

最近在學習彙編,也發現自己好長時間沒寫部落格了,就更新乙個昨天用彙編寫的氣泡排序吧 上個星期五開始學的彙編,寫的較挫,望見諒 有bug還望提出,一起討論 data segment buf db 10,4,6,55,30,90,78,88,69 n buf data ends code segment...

彙編實現氣泡排序

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