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

標(biāo)題: ARM嵌入式匯編語言程序設(shè)計重點 [打印本頁]

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

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






歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产精品伦理一区 | 香蕉视频在线播放 | 特黄老太婆aa毛毛片 | 国产成人午夜 | 国产美女福利 | 超碰777 | 日韩三级中文字幕 | 黄色网址入口 | www.狠狠操.com | 欧美一区二| 久久久亚洲精品视频 | 欧美视频一区二区三区 | av网址在线播放 | 久久精品一区二区国产 | 一区二区三区在线观看免费 | 日本a网站 | 亚洲福利在线观看 | 亚洲欧美在线视频 | 日本韩国欧美中文字幕 | 3p在线观看 | 亚洲免费视频一区 | 999av | 欧美高清一区二区 | 九九久久精品视频 | 狼人色| 少妇一级片 | 黄色三级免费 | 国产成人精品网站 | 青青草久草 | 成人毛片网 | 成年人免费在线视频 | 可以在线观看的av | 欧美日韩视频 | 人人澡人人爽 | 国产精品久久久一区二区 | 黄色片一区二区 | 午夜激情影视 | 99热1| 91超碰在线观看 | 国产精品一区二区不卡 | 日本不卡视频在线观看 |