S3C2440氣泡排序(彙編)

2021-07-22 09:17:19 字數 1107 閱讀 4264

area test2,code,readonly

entry

code32

;把隨機的十個數安從小到大的順序排序,並存放在目標記憶體單元中

;r0,r1用於迴圈計數

;r6,r7 用於完成r4,r5的i*4偏移量

;r8-r11用於 src資料轉存dst

start

mov r0,#0 ;外迴圈次數

mov r1,#9 ;內迴圈次數

mov r7,#4 ;無意義就是數字4,用來做乘法操作

mov r11,#10 ;用於src轉移dst資料次數

loopout sub r9,r1,r0 ;內迴圈次數賦值

ldr r2,=src ;src用於比較的首位址

mul r6,r0,r7 ;為了計算移動單元

add r2,r2,r6 ;當前r2所指首位址

ldr r3,[r2] ;取出當前首位址的值

mov r4,r2 ;獲取首位址指標r2所存的值

loopin add r4,r4,#4 ;指標移動

ldr r5,[r4] ;存放當前r4指向的值

cmp r3,r5

swphs r3,r3,[r4] ;交換較小的數給r3

strhs r3,[r2]

subs r9,r9,#1

bne loopin

add r0,r0,#1 ;造成下次指標偏移

cmp r0,#9

bne loopout

ldr r8,=src

ldr r9,=dst

loopend ldr r10,[r8],#4 ;讀取src中值

str r10,[r9],#4 ;將src中值寫入dst中

subs r11,r11,#1

bne loopend

ltrog

src dcd 0x99,0x88,0x77,0x66,0x65,0x55,0x44,0x33,0x22,0x11

dst dcd 0,0,0,0,0,0,0,0,0,0

stop

b stop

end

S3C2440彙編中斷程式

雖然現在c語言已經成為主流力量,但是我還是非常喜歡用彙編寫 的高效率,高速度是有天獨厚的,但我更喜歡他那種 指哪打哪 的高透明。265m的ram任你主宰,想把那句話放在哪,就放在哪。這種任性你懂嗎?學習中斷程式兩大感悟 自己卡住的地方 2,位址切記不要寫錯。我就是在這裡卡了將近一天時間。s3c244...

求教 s3c2440問題

趙老師您好,我把您的程式新增到我的程式中去了,下面是主要 1 main函式 int main void a a b rgpbdat liushui delay 20 liushui liushui 0xffe 2 pwm初始化 void pwm init void 3 定時器中斷 static vo...

s3c2440系統時鐘

1 flck hclk和pclk的關係 一般來說,mcu的主時鐘源主要是外部晶振或外部時鐘,而用的最多的是外部晶振。在正確情況下,系統內所使用的時鐘都是外部時鐘源經過一定的處理得到的。由於外部時鐘源的頻率一般不能滿足系統所需要的高頻條件,所以往往需要pll 鎖相環 進行倍頻處理。在s3c2440中,...