《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 解決方案 > ARM匯編語言數據處理操作

ARM匯編語言數據處理操作

2017-06-22
關鍵詞: 匯編語言

1)簡單的寄存器操作

典型的ARM數據處理指令的格式如下:

ADD              R0,R1,R2         ;R0<-R1+R2

分好后面是注釋語句,應該被匯編器忽略。加入注釋語句使匯編代碼更加易讀和易解釋。這個例子只是簡單地取2個寄存器值的和,并將結果放在第2個寄存器。寄存器的值都是32位。

在編寫匯編語言源代碼時,必須注意操作數的正確順序,第一個是結果寄存器,然后是第1操作數,最后是第2操作數(對于**操作,第1和第2操作數都是寄存器,它們的次序并不重要)。當這些指令執行時,對系統而言,惟一的變化是目的寄存器R0的值。當然,如果指定S,則CPSR中的標志位N、Z、C和V的值也會有選擇的變化。

2)立即數操作

在數據處理指令中,第2操作數除了可以是寄存器,還可以是一個立即數。如果只有希望把一個常數加到寄存器,而不是2個寄存器相加,則可用立即數值取代第2操作數。例如,立即數用前面加一個#的數值常量來表示:

ADD       R3,R3,#1                 ;R3<-R3+1

AND       R8,R7,#&FF            ;R8<-R7[7:0]

由第一個例子可以說明,允許源和目的操作數使用同一個寄存器。第二個例子中,&表示該立即數是十六位進制的立即數。

雖然立即數的值是在32位指令字內編碼,但不可能將所有可能的32為值作為有效立即數,有效立即數是由一個8位的立即數循環右移2n位得到。匯編器也會用MVN代替MOV、用SUB代替ADD等,這樣也可把立即數置于可設置的范圍之內。

3)寄存器移位操作

在ARM數據處理指令中,第2操作數還有一種特有的形式——寄存器移位操作,即允許第2操作數在同第一操作數運算之前完成移位操作。例如:

ADD       R3,R2,R1,LSL #3                ;R<-R2+8*R1

注意,它是一條ARM指令,在一個時鐘周期內執行。許多處理器采用獨立的指令提供移位操作,但ARM將它們和基本的ALU操作合并在一個指令中。

例子中,在R1和R2相加之前,先將R1邏輯左移3位,然后再與R2相加,在這里用立即數#3表示移位的位數。可得到的移位操作有LSL、LSR、ASL、ROR和RRX,這些移位操作與移位尋址中的移位操作時相同的。

第2操作數的移位位數除了可用立即數定義外,還可使用寄存器值定義。例如:

ADD              R5,R5,R3,LSL R2         ;R5<-R5+R3*2的R2次冪

這是4地址指令。只有R2的低8位是有意義的,但由于移位超過32位不是非常有用,所以這種限制對于許多用途是不重要的。


本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 欧洲高清一区二区三区试看| 综合激情区视频一区视频二区| 天天射天天爱天天干| 久久婷婷五月综合国产尤物app | 天天操天天射天天操| 久久国产热这里只有精品| 欧美日韩电影网| 全免费a级毛片免费看| 中文字幕丰满伦子无码| 男人猛躁进女人免费观看| 国产又爽又黄又无遮挡的激情视频 | 精品久久久无码人妻中文字幕 | 无翼乌日本漫画| 亚洲av无码成人精品国产 | 中文字幕丝袜诱惑| 日韩欧美国产另类| 亚洲日本一区二区一本一道| 国产丝袜第一页| 在线观看国产人视频免费中国| 中文字幕人妻无码一夲道| 最近中文字幕在线中文高清版| 亚洲熟妇无码乱子av电影| 精品国产成人亚洲午夜福利| 国产又色又爽又刺激在线观看| 制服丝袜自拍偷拍| 日日碰狠狠添天天爽超碰97| 亚洲国产日韩欧美| 熟妇人妻久久中文字幕| 品色堂永久免费| 韩国男男腐啪GV肉视频| 国产精品二区高清在线| 中文无码久久精品| 最新夫妇交换乱的中文字幕| 亚洲欧美色中文字幕在线| 精品一区二区三区免费视频 | 中文字幕亚洲色图| 日韩人妻无码精品一专区| 亚洲中文字幕无码中文字在线| 永久不封国产毛片AV网煮站| 免费国内精品久久久久影院| 美女被免费网在线观看网站|