《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 解決方案 > ARM匯編程序跳轉表

ARM匯編程序跳轉表

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

程序員在程序設計中,有時為使程序成一定的功能,需要調用一系列子程序中的一個,而決定究竟調用哪一個,則由程序的計算值確定。當然,可伶來完成這件事,例如:

                     BL          JUMPTAB

                     …

JUMPTAB      CMP       R0,#0

                     BEQ       SUB0

                     CMP       R0,#1

                     BEQ       SUB1

                     CMP       R0,#2

                     BEQ       SUB2

然而當子程序列表很長時,這種解決方案變得非常慢,這是一般不希望的。為了解決這個問題,程序員提出了跳轉表的有效解決方案。跳轉表是利用程序計數器PC在通用寄存器文件中的可見性實現。例如:

                     BL          JUMPTAB

                     …

JUMPTAB      ADR       R1,SUBTAB       ;R1<-SUBTAB

                     CMP       R0,#SUBMAX    ;檢查超限

                     LDRLS   PC,[R1,R0,LSL #2]       ;如果OK,則跳轉到表中

                     B            ERROR                 ;否則,發出錯誤信息

SUNTAB        DCD       SUB0                    ;子程序表入口

                     DCD       SUB1

                     DCD       SUB2     

DCD指示匯編器保留一個存儲子,將它初始化為右邊表達式的值,這在偽操作中已介紹,在這種情況下存儲字中保留的只是標號的地址。

不管表中有多少子程序,以及它們使用的頻度如何互不相關,這種方法的性能不變。但要注意,讀跳轉表時不能超出了表的末端,檢查越限是必需的。越限檢查時通過有條件地向PC置數實現的,所以越限時讀取指令被跳過,并轉移到錯誤處理。越限檢查惟一的性能代價是執行同最大值進行比較的指令。更直接的代碼可以是:

       CMP       R0,#SUBMAX                  ;檢查越限

       BHI        ERROR                               ;如果越限,則調出出錯處理

       LDR       PC,[R1,R0,LSL  #2]       ;否則跳轉到表中

但是要注意,每次使用跳轉表都要承受有條件地跳過轉移的代價,所以還是上面的程序更有效一些。


本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 一本久道久久综合多人| 国产AV无码专区亚洲AV麻豆| 久久久久久人妻无码| 痴汉电车中文字幕| 国产精品嫩草影院线路| 久久中文骚妇内射| 特黄特色大片免费播放| 国产无遮挡又黄又爽又色| 两根手指就抖成这样了朝俞| 欧美老妇bbbwwbbww| 国产做国产爱免费视频| china男男versios| 日韩精品欧美高清区| 免费特级黄色片| 亚洲男人的天堂久久精品| 成人欧美一区二区三区在线 | 很黄很黄的网站免费的| 亚洲国产精品无码久久久蜜芽| 色老太婆bbw| 国产精品香蕉在线观看| 中文字幕精品亚洲无线码二区 | 四虎成人精品在永久免费| 9277手机在线视频观看免费| 日本夜爽爽一区二区三区| 亚洲精品网站在线观看不卡无广告 | 正在播放西川ゆい在线| 国产亚洲欧美日韩综合综合二区| avtom影院入口永久在线app| 日韩在线观看完整版电影| 人人狠狠综合久久亚洲| 都市激情第一页| 国内精品伊人久久久久影院对白 | 年轻人影院www你懂的| 亚洲欧洲无码av不卡在线| 色偷偷AV老熟女| 国产精品福利一区二区| 中国高清色视频www| 欧美xxxx做受欧美精品| 再深点灬舒服灬免费观看| 4hu四虎最新免费地址| 在线观看国产91|