新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 匯編冒泡排序(51)(需調試器付初值)

        匯編冒泡排序(51)(需調試器付初值)

        作者: 時間:2016-11-18 來源:網絡 收藏
        ;此程序屬于冒泡排序算法,不能用查找表(只能在調試時用內存表中設置處置進行仿真實驗)(因為查找表是數據是存放在rom中的,所以說是無法去修改的,無能為力,因此只能通過調試來實現)

        NumEQU31H;定義臨時次數變量(也可理解為總數據變量)

        本文引用地址:http://www.104case.com/article/201611/315819.htm

        ORG0000H

        LCALLSTART;跳轉到排序算法

        SJMP$;如果排序完成,在此循環

        START:MOVR0,#50H;把地址0050h付給R0中

        MOVNum,#4;所有數據個數放在Num中

        CLRF0;用戶可以使用的標志位清零(交換數據標志)

        DECNum;減1

        MOVA,@R0;把其中的數送到A中

        LOOP:MOVR2,A;把低字節地址中的數付給R2

        INCR0;地址加一

        CLRC;進位標志位清零

        MOVA,@R0;把高字節地址中的數付給A

        SUBBA,R2;帶進位相減指令

        JNCLOOP1;如果沒有借位,則高字節中比低字節中數據大,不用排,跳轉到loop1

        ;如果借位,下面是交換數據代碼

        SETBF0;用戶可以使用的標志位置1

        MOVA,R2

        XCHA,@R0;把低字節數送到高字節地址中

        DECR0;地址減1,到低字節地址中

        XCHA,@R0;把高字節中的數送到低字節地址中

        INCR0;在把地址重新加一

        LOOP1:MOVA,@R0

        DJNZNum,LOOP;重新進入下次循環(跳出時,實現一次冒泡)

        JBF0,START;循環進行冒泡,如果交換標志一直為0,則排序完成,結束

        RET

        END



        關鍵詞: 匯編冒泡排序初

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 留坝县| 嘉鱼县| 辛集市| 龙海市| 连云港市| 达拉特旗| 夏河县| 邵阳市| 静宁县| 隆回县| 乌苏市| 寿阳县| 枣庄市| 沂源县| 桓台县| 上饶县| 文成县| 崇仁县| 舟山市| 固安县| 太原市| 黄陵县| 新乡县| 徐水县| 盐边县| 抚顺县| 策勒县| 平舆县| 大兴区| 东平县| 哈密市| 寿宁县| 织金县| 蒙城县| 梅州市| 昌江| 徐水县| 启东市| 黑河市| 宁德市| 江西省|