久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: ARM嵌入式匯編語言程序設計重點 [打印本頁]

作者: qq8426030    時間: 2014-7-14 15:26
標題: ARM嵌入式匯編語言程序設計重點

ARM嵌入式匯編語言程序設計重點
實驗目的
l 熟悉ARM微處理器指令系統;
l
學習ARM嵌入式匯編程序設計的編程重點。
實驗設備
l 硬件:PC機。
l
軟件:ADS1.2集成開發環境,Windows 2000/XP/2003
實驗內容
l 了解多分支程序的編寫方法; l
掌握ARM程序的運行和調試。
實驗原理
1Arm 體系結構3種執行流程 1 順序執行:在正常執行過程中,每執行一條ARM指令,程序計數器(PC)的值加4個字節;每執行一條Thumb指令,程序計數器 (PC)2個字節。整個過程按順序執行。 2 跳轉執行:程序可以跳轉到特定的地址標號處執行,或者跳轉到特定的子程序處執行。 3 異常中斷執行:在進入異常中斷處理程序時,要保存被中斷程序的執行現場,從異常中斷
處理程序退出時,要恢復被中斷程序的執行現場。  
2)跳轉表
多分支結構是程序中常見的結構,若給出調用號來調用子程序,一般用查表方法,查到子程序的地址,轉到相應子程序。注意:讀跳轉表時不要超過表的末端,檢查超限是必需的。例如:
BL  JUMPTABLE
JUMPTABLE ADR R1,SUBTABLE
            CMP R0,#SUBMAX   ;檢查超限
            BHI stop             ;若超限,則程序結束             LDR PC,[R1,R0,LSL #2];否則跳轉到表中 stop  MOV R0,#0X18  
LDR R1,=0X20026
SWI 0x123456
SUBTABLE DCD SUB0            ;子程序表入口            DCD SUB1            DCD SUB2
實驗參考程序
利用跳轉表實現多分支轉移。
AREA JUMP,CODE,READONLY;設置本段程序的名稱(JUMP)及屬性
num EQU 2         ;跳轉表中的子程序個數       ENTRY      ;程序執行的入口點
START  ;設置3個參數,然后調用子程序arithfunc,進行算術運算       MOV R0,#0
      MOV R1,#3       MOV R2,#2
      BL arithfunc  ;調用子程序arithfunc
STOP  ;調用angel_SWIreason_ReportException,從應用程序中退出       MOV R0,#0X18
      LDR R1,=0X20026       SWI 0x123456
arithfunc        ;子程序arithfunc入口點
      CMP R0,#num;判斷選擇子程序的參數是否在有效范圍之內       MOVHS PC,LR
      ADR R3,JumpTable;讀取跳轉表的基地址
      LDR PC,[R3,R0,LSL #2];根據參數R0的值跳轉到相應的子程序
;跳轉表JumpTable中保存了各個子程序的地址, 在這里有兩個子程序DoAddDoSub ;當參數R00時上面的代碼將選擇DoAdd ;當參數R01時上面的代碼將選擇DoSub JumpTable
      DCD DoAdd       DCD DoSub
DoAdd 子程序DoAdd執行加法操作       ADD R0,R1,R2
      MOV PC,LR
DoSub 子程序DoSub執行減法操作       SUB R0,R1,R2       MOV PC,LR       END;結束匯編
實驗思考題
1. 修改下列C程序段代碼為ARM匯編程序段代碼。
   do {  x--; } while(x>0);   這里設x存放在R0 (x為無符號整數) DOWHILE_L1  ADD  R0,R0,#-1      ; 循環體,x--
DOWHILE_L2  MOVS R0,R0         ; R0 <= R0,并影響條件碼標志   
BNE  DOWHILE_L1   ; R0不為0(x不為0),則繼續循環
DOWHILE_END  NOP   
2. 編寫一簡單ARM匯編程序段,實現1+2++100的運算。   AREA EXAMPLE1, CODE,READONLY  ;定義一個代碼段,名稱為EXAMPLE1   ENTRY                             ;入口
  MOV     R0,#0                     ;R0賦值為0
  
MOV   R1,#0                       ;R1來存放1~100的總和,初始化為0
START  ADD  R0,R0,#1               ;用來判斷終止的,每次加1        ADD  R1,R1,R0                ;1加到100      
       CMP  R0,#100             ;執行R0-100的操作,但不保存,只影響CPSR的值        BLT  START              ;帶符號數小于時跳轉到START處執行 STOP   B     STOP              ;死循環        END
全面承快速樣板及小批量貼片,后焊加工業務,樣板2-3天完成,加快24小時, BGA反修,植球及更換。電話:0755-2655271 QQ: 2643383166,網站
同樣的業務我們比質量;同樣的質量我們比價格;同樣的價格我們比時間,同樣的時間我們比服務;同樣的服務我們比信譽,麥斯艾姆,你值得信賴的樣板貼片專家。






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: www.国产精| 中文字幕视频在线观看免费 | 久久国产精品久久久久久 | 黄色成人在线 | 国产三级精品三级在线观看四季网 | 中文字幕在线观看 | 国产福利资源 | 91网站在线观看视频 | 91免费福利在线 | 日日操夜夜操天天操 | 久久精品国产亚洲一区二区 | 欧洲精品在线观看 | 亚洲国产一区二区三区四区 | 国产视频一区二区在线观看 | 在线播放第一页 | 欧美美女二区 | 欧美日韩大片 | av夜夜操| 日韩欧美中文 | 亚洲逼院| 国产精品久久久久久久毛片 | 亚洲国产高清高潮精品美女 | 日中文字幕在线 | 日本天天色 | 亚洲精品一区中文字幕乱码 | 99久久精品视频免费 | 狠狠躁天天躁夜夜躁婷婷老牛影视 | 欧美日韩久久 | 精品一区二区三区中文字幕 | 日韩美女在线看免费观看 | 成人一级片在线观看 | 久久精品无码一区二区三区 | 爱爱视频日本 | 永久看片 | 亚洲一区二区三区四区五区中文 | 国产高清在线精品一区二区三区 | 欧美亚洲国产日韩 | 日本一区二区三区四区 | 亚洲一区二区免费视频 | 国产999精品久久久久久 | 欧美成人一区二区三区 |