用微控制器組合語言編寫從30H開始的100資料的排列 從小到大程式

2025-06-17 21:35:15 字數 2766 閱讀 7305

1樓:匿名使用者

一批單位元組無符號數,以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 ;

clr c ;

mov a,@r1 ;取下乙個數。

subb a,r3 ;比較大小。

jnc loop1 ;如果進位位cy=0,則轉移setb f0 ;互換標誌位f0置1

mov a,r3 ;前面大的數放到a

xch a,@r1 ;互換後,小的數在a,大數在@r1dec r1 ;(r1)指向前乙個位址。

loop1: mov a,@r1 ;取下乙個數djnz r5,loop

jb f0,sort 如果直接定址位=1,則轉移ret這是微控制器組合語言的經典冒泡法排序,看懂了,對你很有幫助!把r0=30h ,r2=100h-30h代入,就可以得到你要的結果。

微控制器程式設計求解: 1.. 將片內ram30h開始的連續16個單元的資料按從小到大的順序排列。

2樓:做而論道

排序的題目,可以到 我的空間 去找答案。

mov dptr, #2000h ;設定位址。

movx a, @dptr ;取來內容。

mov b, a ;暫存。

swap a ;交換內高低四位。

anl a, #0fh ;保留低四位(原高四容位).

inc dptr ;2001h

movx @dptr, a ;存放。

mov a, b ;取回。

anl a, #0fh ;保留低四位。

inc dptr ;2002h

movx @dptr, a ;存放。

end ;完。

3樓:網友

用氣泡排序法,將b,2001h,2002h清零,將2000h傳到a,將a,b半位元組交換,傳到2002h,在將a高低位交換,在將a,b半位元組交換,在將b傳到2001h,ok

4樓:網友

讀片外2000h給a , b=a&0b00001111 然後b將b送2002h , c=a>>4, 然後b將b送2001h

將微控制器內30h到39h的資料按從小到大進行排列 求程式

5樓:網友

採用氣泡排序 30h到39h的資料按從小到大進行排列;keil uvision3除錯通過。

org 0000h

ajmp _start

org 0030h

start:

mov sp,#80h ;堆疊指標初始化_main:

mov r0,#30h

mov r1,#31h

data_loop_1:

mov a,@r0

clr csubb a,@r1

jc _no_xch

mov a,@r0 ;若a>=@r1,交換xch a,@r1

mov @r0,a

no_xch:

inc r1

cjne r1,#3ah,_data_loop_1inc r0 ;使r0=r0+1

mov a,r0

inc amov r1,a

cjne r0,#39h,_data_loop_1ajmp $end

51微控制器用c語言編寫程式實現從30h單元開始的連續10個單元取數,一次存入到以40h單元開始的10個單元中。

6樓:網友

mova,30h

只是把位址為30h的單元中的內容傳給a

30h)=40h應該是在前面儲存的值,與這句話無關的。

在內部ram 30h單元開始存放著10個無符號數 編寫程式找出其中的最大值送入內部ram的40h單元 微控制器考試題

7樓:網友

org 0020h

mov r0,#30h ;資料首位址存入r0mov a,@ro ;取第乙個資料存入累加器amov r1,#0ah ;比較次數,a=10loop1:

mov 30h,@r0 ;將比較的數暫存於30hcjne a,30h,chk ;兩個數比較chk:

jnc loop2 ;如果a大,則轉換mov a,@r0 ;如果a小,則將較大的數存入a

loop2:

djnz r1,loop1 ;r1減1,如果其不為0,則繼續迴圈。

mov 40h,a ;比較完畢,存結果end

51微控制器彙編程式,將存放在內部ram起始位址為30h和40h的兩個3位元組無符號數相加...

8樓:網友

;啟動入口。

org 0000h ;復位啟動。

ljmp start ;

org 0100h ;

主控程式。start: mov a,30h

add a,40h

mov 70h,a

mov a,31h

addc a,41h

mov 71h,a

mov a,32h

addc a,42h

mov 72h,a

addc a,#

mov 73h,a

jmp $end ;

微控制器組合語言填空,微控制器組合語言作業

delay mov r3,20 設定50ms計數迴圈初值 mov tmod,10h 設定時器1方式1mov th1,03ch 置定時器初值mov tl1,0b0h setb tr1 啟動t1lp1 jbc tf1 lp2 查詢計數溢位sjmp lp1 lp2 mov th1,03ch 重新制定時器初...

微控制器彙編程式,微控制器(組合語言)程式

這個是外部擴充套件的ram,fef0h是存資料的地址,mov dptr 0fef0h是給資料指標賦值,movx dptr,a是間接定址,將a中資料送到外部ram的fef0h中,中斷服務程式後面應該有reti,挺容易的,看看書,這例題允許了中斷,給出了中斷處理程式,自己看書學得較為深刻。ofefoh指...

51微控制器簡易電子鐘設計組合語言編寫

keyval equ 30h keytm equ 31h keyscan equ 32h dat equ 33h scanled equ 39h clk equ 77h sec equ 78h min equ 79h hour equ 7ah pause bit 00h dot bit 01h or...