日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

汇编语言:冒泡排序算法将10个数按从小到大顺序排列

發(fā)布時間:2024/4/19 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 汇编语言:冒泡排序算法将10个数按从小到大顺序排列 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

匯編語言:冒泡排序算法
題目描述
自定義一組有首地址為data的10個字的數(shù)組,請利用冒泡排序算法來編寫程序,使該數(shù)組中的數(shù)按照從小到大的次序有序化。(注:10個字可以自己定義。)

datas segmentdata1 dw 7,5,3,2,6,9,10,1,8 datas ends

冒泡排序是一種較為簡單的排序算法,需要使用嵌套循環(huán)。每一個外循環(huán)會將未排序數(shù)據(jù)中的最大值排到末尾,每一個小循環(huán)會將相鄰兩個數(shù)比較大小,從而使較大的數(shù)下沉,較小的數(shù)上浮。
本題中,我們需要使用條件轉(zhuǎn)移指令,比較指令(CMP),交換指令(XCHG)。值得一提的是,CMP和XCHG的兩個操作數(shù)不能同時為內(nèi)存中的數(shù)據(jù),但可以一個是寄存器,一個是內(nèi)存數(shù)據(jù)。所以,在比較和交換數(shù)據(jù)的時候,我們需要將其中一個內(nèi)存數(shù)據(jù)放到寄存器中。
(代碼中有注釋,可直接看代碼)

思路:
將循環(huán)次數(shù)放入CX(設需要排序的數(shù)據(jù)有N個,則需要執(zhí)行N-1個循環(huán),即此時應MOV CX,9)。
1.CX-1判斷CX是否符合循環(huán)條件,當CX=0時,程序結(jié)束;否則,SI置零,BX置2倍的CX作為小循環(huán)的判斷條件(若數(shù)據(jù)使用DB定義則無需使用BX,可直接使用CX);
2.將DATA1[SI]放入AX寄存器中,并與DATA1[SI+2]作比較(由于本體數(shù)據(jù)定義時DW,所以用+2,若使用DB定義數(shù)據(jù)則應+1),若小于等于,則執(zhí)行第3步;否則交換DATA1[SI]和DATA1[SI+2];
3.比較SI和BX,相等時執(zhí)行第1步,否則,SI+2,跳轉(zhuǎn)到第二步。
以上就是一個較為簡單的冒泡排序法步驟,接下來看代碼:

DATAS SEGMENTDATA1 DW 7,5,3,2,6,9,10,1,8 DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS START:MOV AX,DATASMOV DS,AXMOV CX,9 L1: ;最外層循環(huán)MOV SI,0 ;設置SI為零 CMP CX,0 ;判斷循環(huán)是否結(jié)束JE EXITDEC CX ;cx-1MOV BX,CXADD BX,CX ;將bx置為cx的2倍,用來判斷SI結(jié)束時的大小;若數(shù)據(jù)以字節(jié)定義,則只需要將bx置為cx即可 L2:MOV AX,DATA1[SI] ;不能直接比較內(nèi)存中的數(shù)字,所以我們需要將其中一個數(shù)字放到寄存器AX中CMP AX,DATA1[SI+2] ;比較兩個數(shù)JLE L3 ;小于等于的話,則直接跳到下一對數(shù)據(jù)的比較XCHG AX,DATA1[SI+2] ;若大于,則通過兩個XCHG語句,交換兩內(nèi)存中的數(shù)字XCHG AX,[SI];內(nèi)層循環(huán)結(jié)束時跳到外層循環(huán) L3:CMP SI,BXJE L1ADD SI,2 ;si+2,開始下一對數(shù)的比較JMP L2 EXIT:MOV AH,4CHINT 21H CODES ENDSEND START

排序結(jié)果
冒泡排序前運行前內(nèi)存數(shù)據(jù)內(nèi)容:

冒泡排序后:

冒泡排序運行正確,此題目完成!

總結(jié)

以上是生活随笔為你收集整理的汇编语言:冒泡排序算法将10个数按从小到大顺序排列的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。