国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站帶做收錄排名專門做推廣的軟文

網(wǎng)站帶做收錄排名,專門做推廣的軟文,有限公司 官網(wǎng),湛江做網(wǎng)站設(shè)計(jì)公司目錄 匯編整體分類 1.指令 2.偽操作 3.偽指令 匯編代碼 匯編初始化 數(shù)據(jù)搬運(yùn)指令 算術(shù)運(yùn)算指令 加法 減法 乘法 比較指令 跳轉(zhuǎn)指令 邏輯運(yùn)算指令 與或,異或 左移右移 內(nèi)存操作 LOAD/STORE 指令 寫 讀 CPU的棧機(jī)制 棧的概念 棧的種類 1.空棧(…

?

目錄

匯編整體分類

1.指令

2.偽操作

3.偽指令

匯編代碼

匯編初始化

數(shù)據(jù)搬運(yùn)指令

算術(shù)運(yùn)算指令

加法

減法

乘法

比較指令

跳轉(zhuǎn)指令

邏輯運(yùn)算指令

與或,異或

左移右移

內(nèi)存操作 LOAD/STORE 指令

CPU的棧機(jī)制

棧的概念

棧的種類

1.空棧(Empty)

2.滿棧(Full)

棧的基本操作

PUSH/POP

棧的應(yīng)用

葉子函數(shù)

非葉子函數(shù)


匯編整體分類

1.指令

????????編譯完生成一條機(jī)器碼存儲(chǔ)在內(nèi)存單元當(dāng)中,CPU執(zhí)行時(shí)能完成對(duì)應(yīng)的操作(類似于C中的語句)

2.偽操作

????????偽操作(相當(dāng)于c中的#的內(nèi)容,告訴編譯器怎么編譯),不會(huì)生成機(jī)器碼也不會(huì)占用內(nèi)存,其作用是告訴編譯器怎樣編譯(類似于C中的預(yù)處理指令)

3.偽指令

????????偽指令不是指令,編譯器在編譯時(shí)將其替換成等效的指令 (如:cpu中沒有乘法器,對(duì)應(yīng)沒有乘法指令,3*3 ---》用加法器實(shí)現(xiàn)3+3+3,替換實(shí)現(xiàn))

匯編代碼

匯編初始化

?AREA ???STACK, NOINIT, READWRITE
__initial_spAREA ???RESET, DATA, READONLY
__Vectors ??????DCD ????__initial_spDCD ????main ?????????????AREA ???|.text|, CODE, READONLYENTRY
mainloopB loop ?????????????????END

1.AREA STACK, NOINIT, READWRITE: 這一行指定了一個(gè)名為STACK的內(nèi)存區(qū)域,它用于存儲(chǔ)堆棧。NOINIT表示這個(gè)內(nèi)存區(qū)域在程序啟動(dòng)時(shí)不需要初始化,READWRITE表示這個(gè)內(nèi)存區(qū)域可以被讀取和寫入。
2.__initial_sp: 這一行定義了一個(gè)名為`__initial_sp`的符號(hào),它表示堆棧指針的初始值。在這里,它被定義為堆棧的起始地址。通常,這個(gè)符號(hào)會(huì)在鏈接腳本中進(jìn)一步定義為實(shí)際的堆棧內(nèi)存區(qū)域的起始地址。
3.AREA RESET, DATA, READONLY: 這一行指定了一個(gè)名為RESET的內(nèi)存區(qū)域,用于存儲(chǔ)重置向量表。DATA表示這個(gè)區(qū)域包含數(shù)據(jù),READONLY表示這個(gè)區(qū)域只能被讀取。
4.__Vectors DCD __initial_sp: 這一行定義了一個(gè)重置向量表,用于指示程序啟動(dòng)時(shí)應(yīng)該執(zhí)行的操作。`DCD`表示存儲(chǔ)一個(gè)雙字(32位)的數(shù)據(jù)。在這里,第一個(gè)雙字存儲(chǔ)的是堆棧指針的初始值,即__initial_sp。
5.DCD main: 這一行將程序的入口地址(main函數(shù))添加到重置向量表中。這意味著程序在啟動(dòng)時(shí)將跳轉(zhuǎn)到main函數(shù)開始執(zhí)行。
6.AREA |.text|, CODE, READONLY: 這一行指定了一個(gè)名為.text的內(nèi)存區(qū)域,用于存儲(chǔ)代碼。CODE表示這個(gè)區(qū)域包含代碼,READONLY表示這個(gè)區(qū)域只能被讀取。
7.ENTRY main: 這一行指定了程序的入口點(diǎn)為main函數(shù)。這意味著程序?qū)?#96;main`函數(shù)開始執(zhí)行。
8.loop B loop: 這一行是一個(gè)無限循環(huán),它會(huì)不斷地跳轉(zhuǎn)到`loop`標(biāo)簽所在的位置,導(dǎo)致程序永遠(yuǎn)循環(huán)執(zhí)行這條指令。
9.END: 這一行表示程序的結(jié)束。

數(shù)據(jù)搬運(yùn)指令

改變PC的值實(shí)現(xiàn)程序跳轉(zhuǎn)

?AREA ???STACK, NOINIT, READWRITE
__initial_sp ????????????????AREA ????????????????RESET, DATA, READONLY
__Vectors ??????DCD ????__initial_sp ?????????????????DCD ????main ??????????????????????????????AREA ???|.text|, CODE, READONLY ????????????????ENTRY
main ?
MOVS R0,#2
MOVS R1,R0
;改變PC的值實(shí)現(xiàn)程序跳轉(zhuǎn),0x08000008
;先把地址給一個(gè)寄存器,再把這個(gè)寄存器的值賦給PC
LDR R2,=0x08000008
MOV PC,R2
loop ????????????????B loop ??????????????????????????????????
END

算術(shù)運(yùn)算指令

加法

????AREA ???STACK, NOINIT, READWRITE
__initial_sp ????????????????AREA ????????????????RESET, DATA, READONLY
__Vectors ??????DCD ????__initial_sp ?????????????????DCD ????main ??????????????????????????????AREA ???|.text|, CODE, READONLY ????????????????ENTRY
main ?
MOVS R0,#2
MOVS R1,R0
ADDS R3,R0,R1 ?;R3=0X04
LDR R8,=0X01
ADD R8,R8,R3 ??;R8=R8+R3 =0X05
loop ????????????????B loop ??????????????????????????????????
END

減法

????AREA ???STACK, NOINIT, READWRITE
__initial_sp ????????????????AREA ????????????????RESET, DATA, READONLY
__Vectors ??????DCD ????__initial_sp ?????????????????DCD ????main ??????????????????????????????AREA ???|.text|, CODE, READONLY ????????????????ENTRY
main ?
MOVS R0,#2
MOVS R2,#2
MOVS R1,R0
SUBS R2,R0,R1 ?;R2=R0-R1
loop ????????????????B loop ??????????????????????????????????
END

乘法

????AREA ???STACK, NOINIT, READWRITE
__initial_sp ????????????????AREA ????????????????RESET, DATA, READONLY
__Vectors ??????DCD ????__initial_sp ?????????????????DCD ????main ??????????????????????????????AREA ???|.text|, CODE, READONLY ????????????????ENTRY
main ?
MOVS R0,#2
MOVS R2,#2
MOVS R1,R0
MULS R2,R0,R2 ?;R2=R0*R2
loop ????????????????B loop ??????????????????????????????????
END

比較指令

跳轉(zhuǎn)指令

????AREA ???STACK, NOINIT, READWRITE
__initial_sp ????????????????AREA ????????????????RESET, DATA, READONLY
__Vectors ??????DCD ????__initial_sp ?????????????????DCD ????main ??????????????????????????????AREA ???|.text|, CODE, READONLY ????????????????ENTRY
JUMP
MOVS R0,#1
MOVS R2,#1
LDR R3,=0X0800001A
MOV PC,R3main ?
MOVS R0,#2
MOVS R2,#2
MOVS R1,R0
CMP R0,R2 ?;if(a==b)
BEQ JUMP ?
MOVS R0,#3
loop ????????????????B loop ??????????????????????????????????
END
????AREA ???STACK, NOINIT, READWRITE
__initial_sp ????????????????AREA ????????????????RESET, DATA, READONLY
__Vectors ??????DCD ????__initial_sp ?????????????????DCD ????main ??????????????????????????????AREA ???|.text|, CODE, READONLY ????????????????ENTRY
JUMP
MOVS R0,#1
MOVS R2,#1
MOV PC,LRmain ?
MOVS R0,#2
MOVS R2,#2
MOVS R1,R0
BL JUMP
MOVS R0,#3
loop ????????????????B loop ??????????????????????????????????
END

邏輯運(yùn)算指令

與或,異或

????AREA ???STACK, NOINIT, READWRITE
__initial_sp ????????????????AREA ????????????????RESET, DATA, READONLY
__Vectors ??????DCD ????__initial_sp ?????????????????DCD ????main ??????????????????????????????AREA ???|.text|, CODE, READONLY ????????????????ENTRYmain ?
MOVS R0,#2 ? ;R0:0010
MOVS R1,#1 ;R1:0001
ANDS R1,R1,R0 ??;R1=R1&R0 R1=0000
EORS R1,R1,R0 ??; 0010 ?0000 ?0010
loop ????????????????B loop ???END

左移右移

??AREA ???STACK, NOINIT, READWRITE
__initial_sp ????????????????AREA ????????????????RESET, DATA, READONLY
__Vectors ??????DCD ????__initial_sp ?????????????????DCD ????main ??????????????????????????????AREA ???|.text|, CODE, READONLY ????????????????ENTRYmain ?
MOVS R0,#2 ? ;R0:0010 ?左移1位 ?0100--4
MOVS R1,#1 ;R1:1
LSLS R0,R0,R1
loop ????????????????B loop ???END

內(nèi)存操作 LOAD/STORE 指令

CPU的棧機(jī)制

棧的概念

棧是一種具有特殊的訪問方式的存儲(chǔ)空間,特殊性就在于后進(jìn)先出

棧的種類

1.空棧(Empty)

棧指針指向的地址是空的,在棧中存儲(chǔ)數(shù)據(jù)時(shí),可以直接存儲(chǔ),存儲(chǔ)完成之后需要將棧指針再次指向空的位置。

EA:Empty Ascending 空增棧

ED:Empty Descending 空減棧

2.滿棧(Full)

棧指針指向的地址有數(shù)據(jù),在棧中存儲(chǔ)數(shù)據(jù)時(shí),需要先將棧指針,指向一個(gè)空的位置,然后在存儲(chǔ)數(shù)據(jù)。

增棧(Ascending)

????????棧指針向高地址方向移動(dòng)

減棧(Descending)

????????棧指針向低地址方向移動(dòng)

FA:Full Ascending 滿增

FD:Full Descending 滿減

ARM默認(rèn)采用的是滿減棧

棧指針指向有數(shù)據(jù)的頂,接收數(shù)據(jù)時(shí),棧指針先移動(dòng),再放數(shù)據(jù)。指針的移動(dòng)是地址的降低

棧的基本操作

棧有兩種基本的操作:入棧和出棧

1.入棧:將一個(gè)新的元素放到棧頂

2.出棧:從棧頂取出一個(gè)元素

棧頂元素總是最后一個(gè)入棧的,需要出的時(shí)候,又會(huì)是第一個(gè)被取出的

操作規(guī)則:LIFO后進(jìn)先出

PUSH/POP

PUSH 入棧,壓棧

POP 出棧,彈棧

//主程序給R1,R2,R3,R4分別存入:0x11111111 0x22222222 0x33333333 0x44444444然后跳入函數(shù)JUMP
//2.寫一個(gè)函數(shù)JUMP,函數(shù)內(nèi)修改R1為0x20000001 R3為0x00000000
//3.修改結(jié)束后返回主函數(shù)
//4.主函數(shù)再使R1和R3相加后存入R1跳出主程序進(jìn)入死循環(huán)
//子程序返回主程序時(shí),不可以使用MOV指令和B BL BX BXLAREA ???STACK, NOINIT, READWRITE
__initial_sp ????????????????AREA ????????????????RESET, DATA, READONLY
__Vectors ??????DCD ????__initial_sp ?????????????????DCD ????main ??????????????????????????????AREA ???|.text|, CODE, READONLY ????????????????ENTRY
main ?ADD SP,SP,#0X100;上調(diào)棧指針LDR R1,=0X11111111;LDR R2,=0X22222222;LDR R3,=0X33333333;LDR R4,=0X44444444;BL JUMPADD R1,R1,R3B loop
JUMPPUSH {R0-R4,LR} ;保護(hù)現(xiàn)場LDR R1,=0X44324302;LDR R3,=0X33222055;POP{R0-R4,PC} ;恢復(fù)現(xiàn)場
loop ????????????????B loop ???
END

棧的應(yīng)用

葉子函數(shù)

????????葉子函數(shù)是指一個(gè)函數(shù)內(nèi)部沒有調(diào)用其他函數(shù)的函數(shù),也就是說,它是程序調(diào)用樹的末端節(jié)點(diǎn),不依賴于其他函數(shù)。

非葉子函數(shù)

????????非葉子函數(shù)是指一個(gè)函數(shù)內(nèi)部調(diào)用了其他函數(shù)的函數(shù),也就是說,它不是程序調(diào)用樹的末端節(jié)點(diǎn),可以被其他函數(shù)調(diào)用。

http://m.aloenet.com.cn/news/31601.html

相關(guān)文章:

  • 深圳做網(wǎng)站 創(chuàng)同盟seo網(wǎng)址
  • 網(wǎng)站建設(shè) 預(yù)付款如何搭建個(gè)人網(wǎng)站
  • 城建設(shè)投資公司網(wǎng)站江蘇seo團(tuán)隊(duì)
  • 昆明做網(wǎng)站競價(jià)東莞網(wǎng)站推廣宣傳
  • 做商城網(wǎng)站簡單嗎seo運(yùn)營是做什么的
  • 確定B2B網(wǎng)站建設(shè)方案新聞聯(lián)播俄羅斯與烏克蘭
  • 營銷型網(wǎng)站的現(xiàn)狀近期國內(nèi)新聞
  • b2b網(wǎng)站建設(shè)技術(shù)百度推廣創(chuàng)意范例
  • 光明新區(qū)建設(shè)網(wǎng)站網(wǎng)頁制作軟件
  • asp做的網(wǎng)站怎么發(fā)布如何創(chuàng)建自己的小程序
  • 月刊可以用什么網(wǎng)站做廣告投放平臺(tái)系統(tǒng)
  • 做阿里巴巴網(wǎng)站需要哪些資料網(wǎng)站建設(shè)流程圖
  • 網(wǎng)站解析后顯示建設(shè)中艾滋病阻斷藥有哪些
  • 網(wǎng)站開發(fā)工具鏈接服務(wù)器武漢搜索排名提升
  • 做快餐 承包食堂的公司網(wǎng)站百度識(shí)圖 上傳圖片
  • 人妖和美女做視頻網(wǎng)站廣告牌
  • 網(wǎng)站開發(fā)客戶的思路總結(jié)整站優(yōu)化提升排名
  • 微信端網(wǎng)站開發(fā)流程圖百度收錄入口提交
  • 燕郊網(wǎng)站建設(shè)天津seo推廣服務(wù)
  • 計(jì)算機(jī)網(wǎng)站建設(shè)的能力seo網(wǎng)站推廣簡歷
  • 輿情報(bào)告分析10000字seo整體優(yōu)化
  • wordpress的開發(fā)者搜索引擎排名優(yōu)化方法
  • 制作一個(gè)學(xué)校門戶網(wǎng)站中國培訓(xùn)網(wǎng)
  • 餐飲網(wǎng)站開發(fā)性能需求分析免費(fèi)收錄網(wǎng)站
  • 網(wǎng)站建設(shè)教程公司如何注冊(cè)網(wǎng)站平臺(tái)
  • 需要做網(wǎng)站建設(shè)的公司上海互聯(lián)網(wǎng)管理系統(tǒng)推廣公司
  • 做網(wǎng)站數(shù)據(jù)庫表設(shè)計(jì)seo整站優(yōu)化方案
  • 旅游網(wǎng)站模塊2022年seo最新優(yōu)化策略
  • 備案 添加網(wǎng)站網(wǎng)站可以自己建立嗎
  • 黃驊貼吧房屋租賃信息濰坊網(wǎng)站建設(shè)seo