freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[教育學(xué)]第三章arm指令系統(tǒng)-資料下載頁(yè)

2025-01-21 13:10本頁(yè)面
  

【正文】 指令根據(jù)相應(yīng)的條件標(biāo)志來(lái)判斷是否執(zhí)行。 使用方法: 一般 Rn中存放的是欲比較的負(fù)數(shù),operand2為另一被比較的數(shù)。 指令舉例如下: CMN R0, 1 ; R0+1,判斷 R0是否為 1的補(bǔ)碼。 ;若是,則 Z位置 1。 CMN指令與 ADDS指令的區(qū)別: 在于 CMN指令不保存運(yùn)算結(jié)果。 CMN指令可用于負(fù)數(shù)比較,比如 “CMN R0,1”指令則表示 R0與 1比較。若 R0為 1(即 1的補(bǔ)碼 ),則 Z置位;否則 Z復(fù)位 測(cè)試指令 ( 1) TST——位測(cè)試指令 指令格式如下: TST{cond} Rn, operand2 TST指令將寄存器 Rn的值與 operand2的值按位 邏輯 “與 ”操作,根據(jù)操作的結(jié)果更新 CPSR中的相應(yīng)條件標(biāo)志位,以便后面的指令根據(jù)相應(yīng)的條件標(biāo)志來(lái)判斷是否執(zhí)行。 指令舉例如下: TST R0, 0x01 ;判斷 R0的最低位是否為 0 TST Rl, 0x0F ;判斷 R1的低 4位是否為 0 TST指令與 ANDS指令的區(qū)別在于 TST指令不保存運(yùn)算結(jié)果。 TST指令通常與 EQ、 NE條件碼配合使用。當(dāng)所有測(cè)試位均為 0時(shí), EQ有效。而只要有一個(gè)測(cè)試位不為 0,則 NE有效。 ( 2) TEQ——測(cè)試相等指令 指令格式如下: TEQ{cond} Rn, operand2 TEQ指令將寄存器 Rn的值與 operand2的值按位邏輯 “異或 ”操作,根據(jù)操作的結(jié)果更新 CPSR中的相應(yīng)條件標(biāo)志位,以便后面的指令根據(jù)相應(yīng)的條件標(biāo)志來(lái)判斷是否執(zhí)行。 指令舉例如下: TEQ R0, R1 ;比較 R0與 R1是否相等 ; (不影響 V位和 C位 ) TEQ指令與 EORS指令的區(qū)別在于 TEQ指令不保存運(yùn)算結(jié)果。使用 TEQ進(jìn)行相等測(cè)試時(shí),常與 EQ、NE條件碼配合使用。當(dāng)兩個(gè)數(shù)據(jù)相等時(shí), EQ有效;否則 NE有效。 分支指令 概述 在 ARM中有兩種方式可以實(shí)現(xiàn)程序的跳轉(zhuǎn): – 一種是使用分支轉(zhuǎn)移指令直接跳轉(zhuǎn); – 另一種則是直接向 PC寄存器賦值來(lái)實(shí)現(xiàn)跳轉(zhuǎn)。 ARM的分支轉(zhuǎn)移指令 , 可以從當(dāng)前指令向前或向后的 32MB的地址空間跳轉(zhuǎn) , 根據(jù)完成的功能它可以分為以下 4種 : B 分支指令 BL 帶鏈接的分支指令 BX 帶狀態(tài)切換的分支指令 BLX 帶鏈接和狀態(tài)切換的分支指令 B——轉(zhuǎn)移指令 指令格式如下: B{cond} label B指令跳轉(zhuǎn)到指定的地址執(zhí)行程序。 指令舉例如下: B WAITA ;跳轉(zhuǎn)到 WAITA標(biāo)號(hào)處 B 0x1234 ;跳轉(zhuǎn)到絕對(duì)地址0x1234處 轉(zhuǎn)移指令 B限制在當(dāng)前指令的 177。 32 MB的范圍內(nèi)。 例子: ? 無(wú)條件跳轉(zhuǎn): B label …… label …… ? 執(zhí)行 10次循環(huán): MOV R0, 10 LOOP …… SUBS R0, R0, 1 BNE LOOP BL——帶鏈接的轉(zhuǎn)移指令 指令格式如下: BL{cond} label BL指令先將 下一條指令的地址拷貝到 LR 鏈接寄存器中,然后跳轉(zhuǎn)到指定地址運(yùn)行程序。 指令舉例如下: BL SUB1 ; LR?下條指令地址 ;轉(zhuǎn)至子程序 SUB1處 … SUB1 … MOV PC, LR ;子程序返回 注意: 轉(zhuǎn)移地址限制在當(dāng)前指令的 177。 32 MB的范圍內(nèi)。BL指令用于子程序調(diào)用。 例子: 根據(jù)不同的條件,執(zhí)行不同的子程序。 CMP R1, 5 BLLT ADD11 ;有符號(hào)數(shù) BLGE SUB22 ;有符號(hào)數(shù) ≧ … ADD11 … SUB22 … 注: 如果 R15,只有 ADD11不改變條件碼,本例才能正常工作。 例子: BL SUB1 …… SUB1 STMFD R13! ,{R0R3,R14} …… BL SUB2 …… SUB2 …… 注意: 在保存 R14之前子程序不應(yīng)再調(diào)用下一級(jí)的嵌套子程序。否則,新的返回地址將覆蓋原來(lái)的返回地址,就無(wú)法返回到原來(lái)的調(diào)用位置。 BX——帶狀態(tài)切換的轉(zhuǎn)移指令 指令格式如下: BX{cond} Rm BX指令跳轉(zhuǎn)到 Rm指定的地址執(zhí)行程序。 ? 若 Rm的位 [0]為 1,則跳轉(zhuǎn)時(shí)自動(dòng)將 CPSR中的標(biāo)志 T置位 ,即把目標(biāo)地址的代碼解釋為 Thumb代碼; ? 若 Rm的位 [0]為 0,則跳轉(zhuǎn)時(shí)自動(dòng)將 CPSR中的標(biāo)志 T復(fù)位 ,即把目標(biāo)地址的代碼解釋為 ARM代碼 。 指令舉例如下: ADRL R0, ThumbFun+1 ; 中等范圍的地址讀取偽指令 BX R0 ; 跳轉(zhuǎn)到 R0指定的地址,并 ;根據(jù) R0的最低位來(lái)切換處理 ;器到 Thumb狀態(tài)。 …… .. ThumbFun … … BLX —帶鏈接和狀態(tài)切換的轉(zhuǎn)移指令 指令格式如下: BLX target address BLX指令先將下一條指令的地址拷貝到 R14 (即 LR)連接寄存器中 , 然后跳轉(zhuǎn)到指定地址處執(zhí)行程序 。 (只有 V5T及以上體系 支持 BLX) 轉(zhuǎn)移 地址限制在當(dāng)前指令的 177。 32MB的范圍內(nèi) 。 協(xié)處理器指令 ARM協(xié)處理器: ARM支持 16個(gè)協(xié)處理器,用于各種協(xié)處理器操作,最常使用的協(xié)處理器是用于控制片上功能的系統(tǒng)協(xié)處理器,例如控制高速緩存和存儲(chǔ)器的管理單元,浮點(diǎn) ARM協(xié)處理器等,還可以開發(fā)專用的協(xié)處理器。 ARM協(xié)處理器指令 根據(jù)其用途主要分為以下三類: 協(xié)處理器數(shù)據(jù)操作指令。 ARM寄存器與協(xié)處理器寄存器的數(shù)據(jù)傳送指令。 協(xié)處理器寄存器和內(nèi)存單元之間數(shù)據(jù)存 /取指令。 ARM的協(xié)處理器指令功能: ( 1) ARM處理器初始化 ARM協(xié)處理器的數(shù)據(jù)處理操作;( 2)在 ARM處理器的寄存器和協(xié)處理器的寄存器之間傳送數(shù)據(jù);( 3)在 ARM協(xié)處理器的寄存器和存儲(chǔ)器之間傳送數(shù)據(jù)。 ARM協(xié)處理器指令 包括以下 5條: — CDP 協(xié)處理器數(shù)操作指令 coprocessor — LDC 協(xié)處理器數(shù)據(jù)加載指令 — STC 協(xié)處理器數(shù)據(jù)存儲(chǔ)指令 — MCR ARM處理器寄存器到協(xié)處理器寄存器的數(shù)據(jù)傳送指令 — MRC 協(xié)處理器寄存器到 ARM處理器寄存器的數(shù)據(jù)傳送指令 一、 CDP——協(xié)處理器數(shù)據(jù)操作指令 ARM處理器通過(guò) CDP指令通知 ARM協(xié)處理器執(zhí)行特定的操作。協(xié)處理器數(shù)據(jù)操作完全是協(xié)處理器內(nèi)部的操作,用于初始化 ARM協(xié)處理器,完成協(xié)處理器寄存器的狀態(tài)改變。 指令格式如下: CDP{cond} CP, Cop1, CRd, CRn, CRm {,Cop2} 其中: ? CP 指令操作的協(xié)處理器名。標(biāo)準(zhǔn)名為 pn, n為 0~ 15。 ? Cop1 協(xié)處理器的特定操作碼。 ? CRd 作為目標(biāo)寄存器的協(xié)處理器寄存器。 ? CRn 存放第 1個(gè)操作數(shù)的協(xié)處理器寄存器。 ? CRm 存放第 2個(gè)操作數(shù)的協(xié)處理器寄存器。 ? Cop2 可選的協(xié)處理器特定操作碼。 指令舉例如下 : ? CDP p7, 0, c0, c2, c3, 0 ;協(xié)處理器 7執(zhí)行操作碼 1為 0和 ;可選操作碼 2為 0的操作。 ? CDP p6, 1, c3, c4, c5 ;協(xié)處理器 6執(zhí)行 ;操作碼為 1的操作 指令特點(diǎn): – 該操作由協(xié)處理器完成,即對(duì)命令參數(shù)的解釋與協(xié)處理器有關(guān),指令的使用取決于協(xié)處理器。 – 若協(xié)處理器不能成功地執(zhí)行該操作,將產(chǎn)生未定義指令異常中斷。 二、 LDC/STC——協(xié)處理器數(shù)據(jù)取 /存指令 協(xié)處理器數(shù)據(jù)取 /存指令從存儲(chǔ)器讀取數(shù)據(jù)裝入?yún)f(xié)處理器寄存器,或?qū)f(xié)處理器寄存器的數(shù)據(jù)存入存儲(chǔ)器。 LDC——協(xié)處理器數(shù)據(jù)讀取指令 LDC指令 從某一連續(xù)的內(nèi)存單元 將數(shù)據(jù)讀取到協(xié)處理器的寄存器中。進(jìn)行協(xié)處理器的數(shù)據(jù)傳送時(shí),由協(xié)處理器來(lái)控制傳送的字?jǐn)?shù)。若協(xié)處理器不能成功地執(zhí)行該操作,將產(chǎn)生未定義指令異常中斷。 指令格式如下: LDC{cond}{L} CP, CRd, 地址 其中: ? L 可選后綴,指明是長(zhǎng)整數(shù)傳送。 ? CP 指令操作的協(xié)處理器名。標(biāo)準(zhǔn)名為 pn, n為 0~15。 ? CRd 作為目標(biāo)寄存的協(xié)處理器寄存器。 地址 指定的內(nèi)存地址。 指令舉例如下: ? LDC p5, c2, [R2, 4] ;讀取 R2+4指向的內(nèi)存單元的數(shù)據(jù),傳送到協(xié)處理器 p5的 c2寄存器中。 ? LDC p6, c2, [R1] ;讀取 R1指向的內(nèi)存單元的數(shù)據(jù),傳送到協(xié)處理器 p6的 c2寄存器中。 STC——協(xié)處理器數(shù)據(jù)存入指令 將協(xié)處理器的寄存器數(shù)據(jù)存入到 某一連續(xù)的內(nèi)存單元中 ,由協(xié)處理器來(lái)控制寫入的字?jǐn)?shù)。 若協(xié)處理器不能成功地執(zhí)行該操作,將產(chǎn)生未定義指令異常中斷。 指令格式如下: STC{cond}{L} CP, CRd, 地址 其中格式說(shuō)明同 LDC 指令。 指令舉例如下: ? STC p5, c1, [R0] ? STC p5, c1, [R0, 0x04] 三、 MCR/MRC——ARM寄存器與 協(xié)處理器寄存器的數(shù)據(jù)傳送指令 MCR —— ARM寄存器到協(xié)處理器寄存器的數(shù)據(jù)傳送指令 MCR指令將 ARM處理器的寄存器中的數(shù)據(jù)傳送到協(xié)處理器的寄存器中。 若協(xié)處理器不能成功地執(zhí)行該操作,將產(chǎn)生未定義指令異常中斷。 指令格式如下: MCR{cond} CP , Cop1, Rd, CRn, CRm{, Cop2} 其中格式說(shuō)明同 CDP 指令。 指令舉例如下: MCR p14, 3, R7, c7, c11, 6 ;從 ARM寄存器中將數(shù)據(jù)傳送到協(xié)處理器 p14的寄存器 ;中,其中 R7為 ARM寄存器,存放源操作數(shù); c7和c11為 ;協(xié)處理器寄存器,是目標(biāo)寄存器;操作碼 1為3;操作碼 2為 6。 MRC——協(xié)處理器寄存器 到 ARM寄存器的數(shù)據(jù)傳送指令 MRC指令將協(xié)處理器寄存器中的數(shù)據(jù)傳送到ARM處理器的寄存器中。若協(xié)處理器不能成功地執(zhí)行該操作,將產(chǎn)生未定義指令異常中斷。 指令格式如下: MRC{cond} CP , Cop1, Rd, CRn,
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1