国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

嵌入式:ARM指令集分類及編碼

這篇具有很好參考價值的文章主要介紹了嵌入式:ARM指令集分類及編碼。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

ARM指令集是32位的,程序的啟動都是從ARM指令集開始。主要是以下三個方面:

  • 指令分類及指令格式
  • 條件執(zhí)行
  • 指令集編碼

指令分類及指令格式

ARM指令使用的基本格式如下:
〈opcode〉{〈cond〉} {S} 〈Rd〉,〈Rn〉{,〈operand2〉}
< > 是必須項(xiàng) , {}是可選項(xiàng)

嵌入式:ARM指令集分類及編碼

指令格式中符號說明:

opcode操作碼;指令助記符,如ADD、STR等。
cond 可選的條件碼;執(zhí)行條件,如EQ、NE等。
S 可選后綴;若指定“S”,則根據(jù)指令執(zhí)行結(jié)果更新CPSR中的條件碼。
Rd 目標(biāo)寄存器。
Rn 存放第1操作數(shù)的寄存器。
op2 第2個操作數(shù)。

立即數(shù)操作

在數(shù)據(jù)處理指令中,第二操作數(shù)除了可以是寄存器,還可以是一個立即數(shù)。如果我們只是希望把一個常數(shù)加到寄存器,而不是兩個寄存器相加,我們可以用立即數(shù)值取代第二操作數(shù),如下面例子。立即數(shù)用前面加一個“#”的數(shù)值常量來表示。
ADD R3, r3,#1 ;r3 := r3 + 1
AND R8, r7,#& ff ;r8 := r7[7:0]

寄存器移位操作

在ARM數(shù)據(jù)處理指令中,第二操作數(shù)還有一種特有的形式-寄存器移位操作,即允許第二個寄存器操作數(shù)在同第一操作數(shù)運(yùn)算之前完成移位操作,例如:
ADD r3, r2,r1,LSL #3 ;r3:=r2 + 8 × r1

設(shè)置條件碼

ARM的任何數(shù)據(jù)處理指令都能通過增加“S”操作碼來設(shè)置條件碼(N,Z,C和V)
數(shù)據(jù)處理指令加了“S”后,算術(shù)操作(在此包含CMP和CMN)根據(jù)算術(shù)運(yùn)算的結(jié)果設(shè)置所有的標(biāo)志位

CPSR和SPSR的格式

嵌入式:ARM指令集分類及編碼

條件域表1

嵌入式:ARM指令集分類及編碼

條件域表2

嵌入式:ARM指令集分類及編碼

條件執(zhí)行

所有的ARM指令集都可以是有條件執(zhí)行的。
ARM指令根據(jù)CPSR中的條件位自動判斷是否執(zhí)行指令,在條件滿足時,指令執(zhí)行,否則指令被忽略。
在ARM的指令編碼表中,統(tǒng)一占用編碼的最高四位[31:28]來表示“條件碼”(即“cond”)。

條件轉(zhuǎn)移

轉(zhuǎn)移 解釋 一般應(yīng)用
B BAL 無條件的 總是 總是執(zhí)行轉(zhuǎn)移 總是執(zhí)行轉(zhuǎn)移
BEQ 相等 比較的結(jié)果為相等或零
BNE 不等 比較的結(jié)果為不等或非零
BPL 結(jié)果為正數(shù)或零
BMI BCC 負(fù) 無進(jìn)位 結(jié)果為負(fù)數(shù) 算術(shù)操作未得到進(jìn)位
BLO 低于 無符號數(shù)比較,結(jié)果為低于
BCS BHS 有進(jìn)位 高于或相等 算術(shù)操作得到了進(jìn)位 無符號數(shù)比較,結(jié)果為高于或相等
BVC 無溢出 有符號整數(shù)操作,未出現(xiàn)溢出
BVS 有溢出 有符號整數(shù)操作,出現(xiàn)溢出
BGT 大于 有符號整數(shù)比較,結(jié)果為大于
BGE 大于或相等 有符號整數(shù)比較,結(jié)果為大于或相等
BLT 小于 有符號整數(shù)比較,結(jié)果為小于
BLE 小于或相等 有符號整數(shù)比較,結(jié)果為小于或相等
BHI 高于 無符號數(shù)比較,結(jié)果為高于
BLS 低于或相等 無符號數(shù)比較,結(jié)果為低于或相等

ARM指令集編碼

ARM指令集是以32位二進(jìn)制編碼的方式給出的,大部分的指令編碼中定義了第一操作數(shù)、第二操作數(shù)、目的操作數(shù)、條件標(biāo)志影響位以及每條指令所對應(yīng)的不同功能實(shí)現(xiàn)的二進(jìn)制位。每條32位ARM指令都具有不同的二進(jìn)制編碼方式,和不同的指令功能相對應(yīng) 。編碼表如下:

嵌入式:ARM指令集分類及編碼

參考文獻(xiàn):

孟祥蓮.嵌入式系統(tǒng)原理及應(yīng)用教程(第2版)[M].北京:清華大學(xué)出版社,2017.文章來源地址http://www.zghlxwxcb.cn/news/detail-437172.html

到了這里,關(guān)于嵌入式:ARM指令集分類及編碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • ARM簡單程序設(shè)計(jì)【嵌入式系統(tǒng)】

    ARM簡單程序設(shè)計(jì)【嵌入式系統(tǒng)】

    2023-4-6 20:26:54 以下內(nèi)容源自《【嵌入式系統(tǒng)】》 僅供學(xué)習(xí)交流使用 Keil 4 安裝教程及簡單使用【嵌入式系統(tǒng)】 新建工程xxx 芯片:ARM7 (Little Endian) 設(shè)置工程屬性 Build結(jié)果必須是0Error的 如果是下圖看配置是否正確 注意這個: 1.每一次修改代碼就需要重寫B(tài)uild 2.READWRITE區(qū)變量初始

    2023年04月20日
    瀏覽(105)
  • 嵌入式:ARM匯編語言程序設(shè)計(jì)基礎(chǔ)教程

    嵌入式:ARM匯編語言程序設(shè)計(jì)基礎(chǔ)教程

    ① 合理地分配存儲器資源,將前述的目標(biāo)系統(tǒng)‘?dāng)?shù)據(jù)結(jié)構(gòu)模型’表示到各存儲器單元。 ② CPU寄存器數(shù)量有限,在程序中,大多數(shù)操作都要使用寄存器;并且有的操作使用特定的寄存器(如堆棧操作使用SP/R13等),程序中要合理分配各寄存器的用途。 用計(jì)算機(jī)語言,對數(shù)據(jù)結(jié)

    2023年04月23日
    瀏覽(41)
  • [ARM 匯編]高級部分—ARM匯編編程實(shí)戰(zhàn)—3.3.3 嵌入式應(yīng)用程序設(shè)計(jì)實(shí)例

    [ARM 匯編]高級部分—ARM匯編編程實(shí)戰(zhàn)—3.3.3 嵌入式應(yīng)用程序設(shè)計(jì)實(shí)例

    在本章節(jié)中,我們將學(xué)習(xí)如何使用ARM匯編編寫一個簡單的嵌入式應(yīng)用程序。我們將以STM32F103微控制器為例,編寫一個程序,實(shí)現(xiàn)按下按鈕時點(diǎn)亮LED的功能。 硬件連接 首先,我們需要將STM32F103微控制器的一個GPIO引腳連接到LED(通過一個合適的電阻),另一個GPIO引腳連接到按鈕

    2024年02月10日
    瀏覽(20)
  • 【ARM 嵌入式 編譯系列 10.2 -- 符號表與可執(zhí)行程序分離詳細(xì)講解】

    請閱讀 【ARM GCC 編譯專欄導(dǎo)讀】 上篇文章:ARM 嵌入式 編譯系列 10.1 – GCC 編譯縮減可執(zhí)行文件 elf 文件大小 下篇文章:ARM 嵌入式 編譯系列 10.3 – GNU elfutils 工具小結(jié) 接著上篇文章 ARM 嵌入式 編譯系列 10.1 – GCC 編譯縮減可執(zhí)行文件 elf 文件大小 介紹,在前兩篇文章中我們?nèi)?/p>

    2024年02月13日
    瀏覽(54)
  • 嵌入式Qt-動手編寫并運(yùn)行自己的第1個ARM-Qt程序

    嵌入式Qt-動手編寫并運(yùn)行自己的第1個ARM-Qt程序

    介紹了如何搭建在Linux開發(fā)板中搭建Qt的運(yùn)行環(huán)境,并測試了Qt自帶的例程。 本篇,來介紹如何自己編寫一個Qt程序,并將編譯結(jié)果放到Linux開發(fā)板中運(yùn)行。 因?yàn)镼t是支持跨平臺的,所以我們可以先在Windows平臺上編寫和查看Qt的運(yùn)行效果,然后再通過交叉編譯,編譯出ARM Linux平

    2024年02月02日
    瀏覽(21)
  • 嵌入式STM32程序一些卡死的原因

    嵌入式STM32程序卡死的原因可能有以下幾種: 1、死循環(huán):程序中存在死循環(huán),導(dǎo)致程序無法繼續(xù)執(zhí)行下去。 2、中斷問題:中斷處理不當(dāng),導(dǎo)致程序無法正常運(yùn)行。 3、堆棧溢出:程序中使用的堆??臻g超出了預(yù)設(shè)的范圍,導(dǎo)致程序無法正常運(yùn)行。 4、資源競爭:多個任務(wù)或中

    2024年02月08日
    瀏覽(121)
  • 【嵌入式 – GD32開發(fā)實(shí)戰(zhàn)指南(ARM版本)】第2部分 外設(shè)篇 - 第3章 溫度傳感器DS18B20

    【嵌入式 – GD32開發(fā)實(shí)戰(zhàn)指南(ARM版本)】第2部分 外設(shè)篇 - 第3章 溫度傳感器DS18B20

    DS18B20 是 DALLAS 最新單線數(shù)字溫度傳感器,新的\\\"一線器件\\\"體積更小、適用電壓更寬、更經(jīng)濟(jì)。Dallas 半導(dǎo)體公司的數(shù)字化溫度傳感器 DS1820 是世界上第一片支持 \\\"一線總線\\\"接口的溫度傳感器。 DS18B20采用的單總線協(xié)議,也就是只需占用主機(jī)一個I/O口,無需其他外圍電路,直接將

    2024年02月21日
    瀏覽(20)
  • 嵌入式_一種非常簡單實(shí)用的基于GD32的裸機(jī)程序框架

    嵌入式_一種非常簡單實(shí)用的基于GD32的裸機(jī)程序框架

    搜索了一下關(guān)于GD或ST裸機(jī)程序的問題,網(wǎng)上有非常多也非常的例子,但是針對裸機(jī)開發(fā)的程序框架卻比較少,這里簡單整理了一下在項(xiàng)目中使用過的一種比較小巧便攜的裸機(jī)程序框架(確切點(diǎn)說算不上框架,只能說一種寫法)。 之前常見的裸機(jī)程序框架就是流水賬框架,比

    2024年02月13日
    瀏覽(28)
  • 嵌入式開發(fā)——ARM介紹

    嵌入式開發(fā)——ARM介紹

    ARM是一種芯片架構(gòu),由英國的ARM Holdings公司開發(fā)和授權(quán),被廣泛應(yīng)用于各種嵌入式系統(tǒng)、移動設(shè)備和消費(fèi)電子產(chǎn)品中。ARM架構(gòu)被設(shè)計(jì)成低功耗、高性能、可定制化的特點(diǎn),能夠滿足各種應(yīng)用場景下的需求。 ARM架構(gòu)主要設(shè)計(jì)了以下幾個部分內(nèi)容: 指令集架構(gòu) (Instruction Set Ar

    2024年02月04日
    瀏覽(101)
  • 嵌入式系統(tǒng)專業(yè)術(shù)語以及AHL-STM32L431運(yùn)行示例程序

    嵌入式系統(tǒng)專業(yè)術(shù)語以及AHL-STM32L431運(yùn)行示例程序

    目錄 一、嵌入式術(shù)語 1.1 與硬件相關(guān)的術(shù)語 1.2 與通信相關(guān)的術(shù)語 1.3 與功能模塊相關(guān)的術(shù)語 二、運(yùn)行示例程序,并得出結(jié)論 1.1 與硬件相關(guān)的術(shù)語 封裝(Package,PKG) ? 封裝是指將集成電路芯片封裝在外部包裝中以保護(hù)芯片并便于連接到電路板上。不同類型的封裝可以影響芯

    2024年04月09日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包