當前位置:編程學習大全網 - 編程軟體 - 用單片機匯編語言編寫從30H開始的100數據的排列 從小到大程序

用單片機匯編語言編寫從30H開始的100數據的排列 從小到大程序

壹批單字節無符號數,以R0為首地址指針,R2中為字節數,將這批數進行升序排列.

SORT: MOV A,R0 ;

MOV R1,A ;(R1)為首地址

MOV A,R2 ;字節數送入R5

MOV R5,A ;(R5)為字節數

CLR F0 ;互換標誌位F0清零

DEC R5 ;循環n-1

MOV A,@R1 ;

LOOP: MOV R3,A ;(R3)為前壹個數

INC R1 ;地址指向下壹個數

CLR C ;

MOV A,@R1 ;取下壹個數

SUBB A,R3 ;比較大小

JNC LOOP1 ;如果進位位Cy=0,則轉移

SETB F0 ;互換標誌位F0置1

MOV A,R3 ;前面大的數放到A

XCH A,@R1 ;互換後,小的數在A,大數在@R1

DEC R1 ;(R1)指向前壹個地址

XCH A,@R1 ;小的數放到前壹個地址

INC R1 ; (R1)指向下壹個地址

LOOP1: MOV A,@R1 ;取下壹個數

DJNZ R5,LOOP

JB F0,SORT 如果直接尋址位=1,則轉移

RET這是單片機匯編語言的經典冒泡法排序,看懂了,對妳很有幫助!把R0=30H ,R2=100H-30H代入,就可以得到妳要的結果

  • 上一篇:excel 中把身份證號轉換成年齡和出生日期的公式是什麽?
  • 下一篇:C語言編程時出現的那個expected怎麽理解啊?
  • copyright 2024編程學習大全網