當前位置:編程學習大全網 - 編程軟體 - arm 匯編高手進! 使用arm匯編指令 實現for循環結構

arm 匯編高手進! 使用arm匯編指令 實現for循環結構

int GetSum(int val) //使用匯編求1+2+3+...+val的值

{

int sum = 0;

__asm__ __volatile__(

"MOV R5 , %1\n"//val放入寄存器r5

"MOV R1 , #0\n" //sum = 0

"MOV R2 , #1\n"//i = 1

"LOOP:\n"

" ADD R1 , R1 ,R2\n" //sum = sum + i

" ADD R2 , R2 ,#1\n" //i++

" CMP R5 , R2\n" //判斷 i 是否等於val if(i==val)

" BEQ END\n" //若相等 跳轉至END處 break

" B LOOP\n" //若不相等 跳轉至LOOP處進入下次循環 else continue

"END:\n"

"MOV %0 , R1\n" //sum = R1

:"=r"(sum)//輸出

:"r"(val)//輸入

:"memory"

);

return sum;

}

隨便寫了個求和的例子 其余的循環大同小異 不懂可以繼續探討 運行之前請交叉編譯然後在ARM平臺上運行

  • 上一篇:c語言中表示空格的是什麽代碼?
  • 下一篇:lisp批量拉長直線 怎樣利用lengthen命令實行批量把直線拉長,參考點為直
  • copyright 2024編程學習大全網