娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年02月22日(星期六)

2020年02月22日 | ARM指令分類學(xué)習(xí)

發(fā)布者:Mingyue1314 來源: eefocus關(guān)鍵字:ARM  指令分類 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

指令分類:


1、算數(shù)和邏輯指令


2、比較指令


3、跳轉(zhuǎn)指令


4、移位指令


5、程序狀態(tài)字訪問指令


6、存儲(chǔ)器訪問指令


++++++++++++++++++++++++++++++++++++++++++++++++++


學(xué)習(xí)指令的資料《arm匯編手冊(cè)(中文版).chm》 ,注:這個(gè)資料是 ARM匯編手冊(cè),我們用的是GNU的匯編,所以語法 大小寫上是有差別的。

使用上一篇文章中的匯編程序來,學(xué)習(xí)使用每個(gè)指令的用法。


一、算數(shù)和邏輯指令


1、mov指令


作用、格式、例子


從另一個(gè)寄存器、被移位的寄存器、或一個(gè)立即值裝載一個(gè)值到目的寄存器。


MOV{條件}{S}  ,    。其中必須是通用寄存器 可以是通用寄存器,也可以是立即數(shù)。

匯編程序中使用@來添加注釋。

JLink 連接好板子,PC機(jī)。板子nandflash啟動(dòng)。開啟JLinkGDBServer,啟動(dòng)eclipse。

打開上一篇文章中的匯編程序工程。

直接在eclipse的工程項(xiàng)目中編輯start.s文件,

.text

.global _start

_start:

@mov指令釋放

mov r1,#3

@ #3表示立即數(shù),十進(jìn)制3

mov r2,r1

mov r3,#10


clean,編譯,調(diào)試。

查看寄存器的值,寄存器的值可以使用16進(jìn)制來展示,右鍵菜單選項(xiàng)進(jìn)行設(shè)置。


2、MVN : 傳送取反的值


  MVN{條件}{S}  ,


 ( 使用C語言的表示方法:dest = !op_1)將 按位取反之后,賦值給


例子:

mvn r1,#ob10

@ #ob10 表示二進(jìn)制數(shù)  10

mvn r2,#5

mvn r3,r1

------------------

r1的值應(yīng)該是 二進(jìn)制 10 按位取反之后的值: 11111111111111111111111111111101


r3的值應(yīng)該是r1取反的值  即二進(jìn)制  10

3、SUB : 減法


  SUB{條件}{S}  , ,


                dest = op_1 - op_2

SUB 用操作數(shù) one 減去操作數(shù) two,把結(jié)果放置到目的寄存器中。操作數(shù) 1 是一個(gè)寄存器,操作數(shù) 2 可以是一個(gè)寄存器,被移位的寄存器,或一個(gè)立即值


4、ADD : 加法


5、AND : 邏輯與


  AND{條件}{S}  , ,


                dest = op_1 AND op_2


----------------------------------

  Op_1   Op_2   結(jié)果


  0      0      0

  0      1      0

  1      0      0

  1      1      1


.text

.global _start

_start:

mov r0,#0

mov r1,#1

mov r2,#3

and r3,r0,r1

@r3的值是0

and r4,r1,r2

@r4的值是1

6、BIC : 位清除


BIC{條件}{S}  , ,

BIC 是在一個(gè)字中清除位的一種方法。操作數(shù) 2 是一個(gè) 32 位位掩碼(mask)。如果如果在掩碼中設(shè)置了某一位,則清除這一位。未設(shè)置的掩碼位指示此位保持不變。


例子:

r0 的值是二進(jìn)制  10111111

掩碼是   101

則結(jié)果是    10111010

掩碼是1 則清楚對(duì)應(yīng)位,置為0

掩碼是0,則不做操作。

.text

.global _start

_start:

mov r1,#0b101011

bic r2,r1,#0b101

@r2的值應(yīng)該是 0b101010


二、比較指令

1、cmp : 比較(Compare)

比較的結(jié)果保存在程序狀態(tài)寄存器,CPSR的 N ,Z 位

N: 0  操作數(shù) one大于操作數(shù)two


      1 操作數(shù) one小于操作數(shù)two


Z:  1 表示比較的結(jié)果是兩個(gè)數(shù)相等


.text

.global _start

_start:

mov r1,#1

cmp r1,#3

2、TST : 測(cè)試位

操作數(shù)one跟操作數(shù)two按位與操作,結(jié)果影響CPSR的Z位

Status = op_1 AND op_2

Status 0  CPSR Z位 是1

Status 1  CPSR Z位 是0

 

四、跳轉(zhuǎn)指令(分支指令)


C語言中 if else分支,在匯編中是如何實(shí)現(xiàn)的?


1、b


b{條件}  <地址>

{條件}的相關(guān)知識(shí)在:

GT : 大于(有符號(hào))如果一次比較之后...

設(shè)置了 N 標(biāo)志并設(shè)置了 V 標(biāo)志

或者...

清除了 N 標(biāo)志并清除了 V 

標(biāo)志

并且...

清除了 Z 標(biāo)志。 

示例:

mov r1,#7

mov r2,#3

cmp r1,r2

bgt branch

add r3,r1,r2

b end

branch:

sub r3,r1,r2

end:

nop


bgt branch: 滿足條件跳轉(zhuǎn)到 branch標(biāo)號(hào)處。

b end: 無條件跳轉(zhuǎn)到end標(biāo)號(hào)處。



2、bl  帶連接的分支


bl會(huì)把下一條指令的地址保存到lr寄存器當(dāng)中。以便函數(shù)能夠正常返回到調(diào)用的地方。


在匯編中實(shí)現(xiàn)函數(shù)的調(diào)用,返回


mov r3,#1


bl func1 @調(diào)用函數(shù) func1


mov r1,#6


func1:


mov r1,#2


mov r2,#3


mov pc,lr


@注意lr寄存器,bl指令能夠把跳轉(zhuǎn)地址的下一條指令保存到lr中,可以通過反匯編來看到lr的地址是哪個(gè)指令操作的地址。


mov r3,#3


五、移位指令


1、LSL 邏輯左移


mov r1, #0b1


mov r1, r1, lsl#1


@r1的值最終為 0b10


2、ROR 循環(huán)右移


mov r1, #0b11


mov r1, r1, ror#1


@r1 的最終結(jié)果  1........1


六、程序狀態(tài)字訪問指令


需要特殊的指令來訪問,修改CPSR寄存器


msr  把通用寄存器寫入到CSPR寄存器中


mrs 把程序狀態(tài)字搬移到通用寄存器


mrs r0, cpsr  @把cpsr的值賦值給 r0


orr r0, #0b100  @把r0 的第三位置為1


msr cpsr, r0 @把r0的值賦值給cpsr


七、存儲(chǔ)器訪問指令


內(nèi)存的值到寄存器 ldr


寄存器的值到內(nèi)存 str


mov r0, 0xff


str r0,  [r1]  @把r0的值賦值給,以r1的值為地址的內(nèi)存中。


@在調(diào)試時(shí),認(rèn)為的修改 r1的值為 0x30001000 ,(2440的開發(fā)板


@調(diào)試界面打開Memory窗口,觀察 內(nèi)存地址為 0x30001000 的數(shù)據(jù)是否是  0xff


ldr r2,  [r1]


@以r1的值作為內(nèi)存的地址,把該內(nèi)存地址上的值賦值給r2 ,應(yīng)該是 0xff

關(guān)鍵字:ARM  指令分類 引用地址:ARM指令分類學(xué)習(xí)

上一篇:ARM體系結(jié)構(gòu)_DAY2
下一篇:ARM處理器、X86處理器和AI處理器的區(qū)別

推薦閱讀

據(jù)報(bào)道,在本月的財(cái)報(bào)電話會(huì)議上,谷歌公司透露,2017比2016年的設(shè)備出貨量翻了一番,但公司并沒有給出任何可靠的數(shù)據(jù)。  日前,國(guó)際數(shù)據(jù)公司(IDC)公布其預(yù)測(cè)。國(guó)際數(shù)據(jù)公司(IDC)的研究總監(jiān)弗朗西斯科?杰羅尼莫(FranciscoJeronimo)表示,谷歌手機(jī)去年出貨量為390萬部。這位分析師還證實(shí)了自己的報(bào)告,稱發(fā)貨量確實(shí)翻了一番。  盡管如此,在這方...
去年11月一個(gè)周五的清晨,天還沒亮,在舊金山國(guó)際機(jī)場(chǎng)和帕羅奧多市之間的101號(hào)公路上行駛著一輛特斯拉Model S電動(dòng)車,加州公路巡警隊(duì)警車“追隨”其后。灰色的特斯拉以每小時(shí)70英里的速度行駛,轉(zhuǎn)向燈頻閃,駛過多個(gè)出口。當(dāng)汽車靠邊停下來之后,警察上前發(fā)現(xiàn)司機(jī)的腦袋都耷拉下來了,連燈光和警笛都沒能把他吵醒。警方猜測(cè),這輛車是在特斯拉自動(dòng)駕駛技...
說起新能源車的電池,相信很多消費(fèi)者都對(duì)其中的原理,有一定的了解,我們經(jīng)常看到的電池,通常都是采用了一層金屬殼進(jìn)行包裹,看著非常的堅(jiān)硬,其實(shí)內(nèi)部都是液態(tài)電解質(zhì),充放電的過程,就是鋰離子在正負(fù)極之間進(jìn)行移動(dòng)的工作,就好像是一個(gè)游泳運(yùn)動(dòng)員,從泳池的這邊游到另一邊。固態(tài)電池就是把液態(tài)的電解質(zhì)換成固態(tài)電解質(zhì),就像是把游泳池的水給抽干了,鋪...
波束形成是一種用于蜂窩通信和其他應(yīng)用的成熟技術(shù)。波束形成最初是基于各種模擬信號(hào)鏈技術(shù)和過程發(fā)展起來的。一般來說,波束形成將天線陣列元素組合在一起,以控制的角度引導(dǎo)信號(hào),使特定接收機(jī)能夠接收達(dá)到最大信號(hào)。 模擬波束形成可以提高發(fā)射機(jī)和接收機(jī)的空間選擇性和效率。然而,它仍然受到基于數(shù)字技術(shù)增強(qiáng)模擬處理的下一代波束形成技術(shù)的限制。數(shù)字...

史海拾趣

問答坊 | AI 解惑

如何提高DDR內(nèi)存的burst寫入效率

我用的 ARM6410 (532MHz) + mDDr(外頻133MHz)系統(tǒng),burst為8。 我的程序里有大量的形如 N=19200; for (i=0; i<N; i++) {     a = b*c+d; } 這樣的數(shù)組讀寫代碼。 對(duì)于數(shù)組讀取,因?yàn)橛衏ache,一次性讀8個(gè)32位數(shù)據(jù)效率很高, ...…

查看全部問答∨

請(qǐng)問PPC中常見開圖形的控件有哪些??

  在開發(fā)PPC應(yīng)用程序時(shí),系統(tǒng)沒有自帶的餅圖控件,請(qǐng)問有沒有與componentOne 類似的控件。     謝謝。 …

查看全部問答∨

關(guān)于GSM/GPRS進(jìn)行無線通信的單片機(jī)與通信模塊選擇問題?

  請(qǐng)各位大俠幫幫忙!   小弟剛開始學(xué)習(xí)使用GSM/GPRS進(jìn)行電網(wǎng)的自動(dòng)監(jiān)測(cè),看了不久的協(xié)議與原理后,逐漸被各種單片機(jī)和GPRS模塊給晃花了眼睛,本著想要學(xué)好一項(xiàng)技術(shù),就得了解原理的原則,(這是論壇一位老鳥說的)我不想只用 ...…

查看全部問答∨

EVC 開發(fā)的程序,放到WINCE里面,過了一段時(shí)間 ,發(fā)現(xiàn)文件壞了,不能啟動(dòng)了???

不知道是什么原因 EVC 開發(fā)的程序,放到WINCE里面,過了一段時(shí)間 ,發(fā)現(xiàn)文件壞了,不能啟動(dòng)了??? 可執(zhí)行文件的圖標(biāo)也變成了一個(gè)"藍(lán)方格子"了; 1.有可能是文件損壞了嗎? 損壞的原因是什么呢? (我用的是Release 版本)…

查看全部問答∨

ST發(fā)布了新的STM32庫(kù)V2.0

ST發(fā)布了新的STM32庫(kù) V2.0,居然不能兼容過去的V1.0及以下!!!!如果使用新庫(kù),以前的程序要全面修改。數(shù)據(jù)結(jié)構(gòu)、函數(shù)變化太大了!郁悶!…

查看全部問答∨

求助:電壓范圍轉(zhuǎn)換

求助大俠們: 怎么把輸出范圍是2.5v-4.375v的電壓轉(zhuǎn)換到0v-3.3v范圍的電壓啊…

查看全部問答∨

STM32跑wifi,有人感興趣么

最近搞了個(gè)裸跑wifi驅(qū)動(dòng),準(zhǔn)備移植到stm32上,不知道有沒有市場(chǎng)? 下載 (11.64 KB) 2010-11-11 11:45 …

查看全部問答∨

出一個(gè)晶控51串口編程器,30元

本帖最后由 ddllxxrr 于 2016-1-7 17:01 編輯 出一個(gè)晶控51串口編程器,30元9成新,還有其他好東西等你去發(fā)掘 …

查看全部問答∨

定時(shí)器的問題

一個(gè)定時(shí)器怎么產(chǎn)生 3個(gè)定時(shí)中斷????實(shí)際使用中,我就會(huì)使用一個(gè)定時(shí)器產(chǎn)生一個(gè)定時(shí)中斷。并且我在做考試題目的時(shí)候也遇到了這個(gè)問題。…

查看全部問答∨
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 安乡县| 延庆县| 米林县| 万安县| 虞城县| 连云港市| 五河县| 烟台市| 周口市| 台东县| 汝阳县| 长寿区| 方城县| 宁南县| 柳州市| 崇文区| 西丰县| 彝良县| 中西区| 金川县| 贵州省| 广灵县| 土默特右旗| 高淳县| 金湖县| 方正县| 富裕县| 固原市| 广河县| 延川县| 喜德县| 新沂市| 楚雄市| 砀山县| 陇南市| 石渠县| 龙江县| 沾益县| 博白县| 泰和县| 喀什市|