日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

Cortex-M3内核的指令系统

發(fā)布時間:2025/4/5 windows 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Cortex-M3内核的指令系统 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

    • 1 Cortex-M3內(nèi)核的指令系統(tǒng)
      • 1.1 指令系統(tǒng)簡介
      • 1.2 數(shù)據(jù)傳送指令
      • 1.3 中斷開關(guān)指令
      • 1.4 條件跳轉(zhuǎn)指令
      • 1.5 運算指令

1 Cortex-M3內(nèi)核的指令系統(tǒng)

1.1 指令系統(tǒng)簡介

指令系統(tǒng)簡介:

  • Cortex-M3使用的是Thumb-2指令集,長度可為16位或者32位。指令可以帶后綴,如有條件的執(zhí)行。示例:CBZ R0, label,如果R0為0,則跳轉(zhuǎn);否則什么都不做。

典型寫法:

指令分類:

  • 數(shù)據(jù)傳送指令。
  • 數(shù)據(jù)處理指令。
  • 子程序調(diào)用及無條件跳轉(zhuǎn)指令。
  • 標(biāo)志位與條件轉(zhuǎn)移指令。
  • 飽和運算指令。
  • 其它指令。

1.2 數(shù)據(jù)傳送指令

存儲器訪問:

  • LDR/LDRB Rd, =LABEL,加載符合LABEL對應(yīng)的地址,存儲到Rd中。
  • LDR/LDRB Rd, [Rs],從Rs寄存器取出地址,讀取相應(yīng)的32位/8位數(shù)據(jù),存儲到Rd寄存器。
  • STR/STRB Rd, [Rs],從Rs寄存器中取出地址,將Rd中的32位/8位數(shù)據(jù)存儲到相應(yīng)的地址處。

批量存儲器訪問:

  • LDMIA, Rd!, {Rn, ... , Rm},從Rd處連續(xù)多次遞增地址讀取32位數(shù)據(jù),存儲到后面指令的寄存器列表。
  • STMDB, Rd!, {Rn, ... , Rm},從Rd處連續(xù)多次遞減地址存儲32位數(shù)據(jù),數(shù)據(jù)來自后面的寄存器列表。

IA(Increase After)表示在操作完成后遞增地址;DB(Decrease Before)表示在操作開始前遞減地址。

!操作結(jié)束后,將最終的地址保存到Rd寄存器中。

MRS和MSR:

MRS和MSR用于訪問xPSR、PSP、MSP等:

  • MRS Rn, <SReg>,加載寄存器的值到Rn。
  • MSR <SReg>, Rn:存儲Rn的值到寄存器中。

1.3 中斷開關(guān)指令

中斷開關(guān):

  • CPSID I:關(guān)中斷。
  • CPSIE I:開中斷。

1.4 條件跳轉(zhuǎn)指令

無條件跳轉(zhuǎn):

  • BX Rn:移到寄存器reg給出的地址,比如BX LR可用于子程序的返回。

比較條件并跳轉(zhuǎn):

  • CBZ Rn, <label>:如果Rn的寄存器不為0,則跳轉(zhuǎn)到label對應(yīng)的指令,否則執(zhí)行下一條指令。
  • CBNZ Rn, <label>:如果Rn寄存器值不為0,則跳轉(zhuǎn)到label對應(yīng)的指令,否則執(zhí)行下一條指令。

1.5 運算指令

邏輯或操作:

  • ORR Rd, Rn, #imm12:Rd = Rn | imm12。

參考資料:

  • 【李述銅】從0到1自己動手寫嵌入式操作系統(tǒng)
  • 總結(jié)

    以上是生活随笔為你收集整理的Cortex-M3内核的指令系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。