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

Arm匯編---寄存器

這篇具有很好參考價(jià)值的文章主要介紹了Arm匯編---寄存器。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

Arm匯編常見(jiàn)的寄存器

  • 寄存器:r0~r15, sp, lr, sb, sl, fp, ip, pc
  • 條件碼:eq, ne, hs, lo, mi, pl, vs, vc, hi, ls, ge, lt, gt, le, al

------------------------------------------ 一、數(shù)據(jù)寄存器 ---------------------------------------------

;CM3 在一定程度上支持 64 位整數(shù)。
;其中 LDRD/STRD 就是為 64 位整數(shù)的數(shù)據(jù)傳送而設(shè)的,語(yǔ)法 格式為:

    LDRD.W RL, RH, [Rn, #+/-offset] {!}
    STRD.W RL, RH, [Rn, #+/-offset] {!}
    LDRD.W RL, RH, [Rn],#+/-offset
    STRD.W RL, RH, [Rn],#+/-offset

    LDR R2, =0x1000     ;(0x1000)= 0x1234_5678_ABCD_EF00 : 00 EF CD AB 78 56 34 12
    LDRD.W R0, R1,[R2]  ;R0= 0xABCD_EF00, R1=0x1234_5678
    STRD.W R1, R0,[R2]  ;(0x1000)=0xABCD_EF00_1234_5678 : 78 56 34 12 00 EF CD AB

------------------------------------------ 二、指針寄存器 ---------------------------------------------


------------------------------------------ 三、段寄存器 -----------------------------------------------

段寄存器是根據(jù)內(nèi)存分段的管理模式而設(shè)置的。內(nèi)存單元的物理地址由段寄存器的值和一個(gè)偏移量組合而成
的,這樣可用兩個(gè)較少位數(shù)的值組合成一個(gè)可訪問(wèn)較大物理空間的內(nèi)存地址。


------------------------------------------ 四、標(biāo)志位 -----------------------------------------------

flag寄存器是按位起作用的,也就是說(shuō),它的每一位都有專門的含義,記錄特定的信息

溢出 方向 中斷 跟蹤 符號(hào) 輔進(jìn)位 奇偶 進(jìn)位
OF DF IF TF SF ZF AF PF CF

ARM架構(gòu)與體系

ARM7處理器采用3級(jí)流水線來(lái)增加處理器指令流的速度,能提供0.9MIPS/MHz的指令處理速度。

ARM指令32位、4個(gè)字節(jié)

31~28 | 27~25 | 24~21 | 20 | 19~16 | 15~12 | 11~0

0000 | 0000 | 0000 | 0000 | 0000 | 0000 | 0000 | 0000

cond | opcode | Rn | Rd | Op2

ARM指令格式一般如下:
{}{s},{,}
格式中< >的內(nèi)容是必不可少的,{ }中的內(nèi)容可忽略

表示操作碼。如ADD表示算術(shù)加法
{} 表示指令執(zhí)行的條件域。如EQ、NE等,缺省為AL。
{S} 決定指令的執(zhí)行結(jié)果是否影響CPSR的值,使用該后綴則指令執(zhí)行結(jié)果影響CPSR的值,否則不影響
表示目的寄存器
表示第一個(gè)操作數(shù),為寄存器
表示第二個(gè)操作數(shù),可以是立即數(shù)。寄存器和寄存器移位操作數(shù)

text:00000F5E BEQ loc_F74

解釋1:

31-28 : cond(條件域) => 0000 #因?yàn)槭荁指令 所以無(wú)條件

27-25 : 101 #因?yàn)?01就是扽與BEQ

24 : 0 #B就是0 BL就是1

23-0 : offset相對(duì)偏移量

offset= (0F74-pc值)/4 #處理器處于ARM狀態(tài)(三級(jí)流水:PC總是指向第3條指令)時(shí),每條指令為4個(gè)字節(jié) ,PC值 = 當(dāng)前程序執(zhí)行位置 + 8字節(jié) ,除4 是代碼對(duì)齊處理

0000 1010 0000 0000 0011-》 A003-》 300A

解釋2

31-28字段,cond是條件碼,就是表明這條語(yǔ)句里是否有大于、等于、非零等的條件判斷。

27-26位為保留位,恒為00

25位,shifter_operand段存放的是立即數(shù)還是寄存器,若為寄存器則為0,如果是立即數(shù)則為1

24-21 位為opcode

20位:表明指令是否會(huì)影響程序狀態(tài)寄存器,如果是就是1,否則為0。

19-16位,表示第一個(gè)源操作數(shù)寄存器。

11-0 目的寄存器

http://armconverter.com/ 在線轉(zhuǎn)化指令

寄存器交互指令

LDR R1,[R2],把R2指向的位置的數(shù)據(jù)給R1

STR R1,[R2],在R2指向的地址,存儲(chǔ)R1

PUSH:入棧
POP:出棧

數(shù)據(jù)算數(shù)指令

ADD R0, R1, R2 -> R0 = R1 + R2

ADD R0, R1, #256 -> R0 = R1 + 256

ADD R0, R2, R3,LSL#1 -> R0 = R2 + (R3 << 1)

SUB R0, R2, R3,LSL#1 ; R0 = R2 - (R3 << 1)

數(shù)據(jù)邏輯運(yùn)算指令

與:AND
或:ORR
異或:EOR

LSL:邏輯左移
LSR:邏輯右移

比較指令

CMP:比較指令

其他指令

SWT:切換用戶模式
偽指令:DCB


ARM寄存器

R0-R7: 通用寄存器
R8-R10:不常用的通用寄存器
R11:基質(zhì)寄存器(FP)
R12:暫時(shí)寄存器(IP)
R13:堆棧制作(SP)
R14:鏈接寄存器(LR)
CPSR:狀態(tài)寄存器

ESP:32位寄存器,sp 是16位寄存器,ESP寄存器通常用來(lái)表示棧頂?shù)闹怠?span toymoban-style="hidden">文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-433674.html

到了這里,關(guān)于Arm匯編---寄存器的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【匯編中的寄存器分類與不同寄存器的用途】

    寄存器分類 在計(jì)算機(jī)體系結(jié)構(gòu)中,8086CPU,寄存器可以分為以下幾類: 1. 通用寄存器: 通用寄存器是用于存儲(chǔ)數(shù)據(jù)和執(zhí)行算術(shù)運(yùn)算的寄存器。在 x86 架構(gòu)中,這些通用寄存器通常包括 AX、BX、CX、DX、SI、DI、BP 和 SP。其中,AX、BX、CX 和 DX 寄存器可以分別作為累加器(accumulat

    2024年02月09日
    瀏覽(22)
  • 16位匯編通用寄存器

    16位匯編通用寄存器

    1、輸入命名debug,進(jìn)入調(diào)試程序 2、r 命令顯示寄存器 3、a命令輸入?yún)R編指令 4、t命令單步執(zhí)行匯編指令 5.數(shù)據(jù)溢出后標(biāo)志位NC 變?yōu)镹Y, 0變成1 最后A

    2023年04月11日
    瀏覽(37)
  • 通用寄存器-匯編復(fù)習(xí)(1)

    通用寄存器-匯編復(fù)習(xí)(1)

    弄清寄存器表達(dá),原理和配件及匯編實(shí)驗(yàn)驗(yàn)證。 8086cpu寄存器,字在寄存器存儲(chǔ) 往期文章: 匯編語(yǔ)言基礎(chǔ)-匯編復(fù)習(xí)(0)_luozhonghua2000的博客-CSDN博客 一個(gè)典型的 CPU(此處討論的不是某一具體的 CPU)由運(yùn)算器、控制器、寄存器(CPU工作原理)等器件構(gòu)成,這些器件靠?jī)?nèi)部總線相連。前

    2024年02月07日
    瀏覽(22)
  • 【匯編語(yǔ)言】CS、IP寄存器

    【匯編語(yǔ)言】CS、IP寄存器

    理論:CPU執(zhí)行何處的指令,取決于CS:IP 應(yīng)用:程序員可以通過(guò)改變CS、IP中的內(nèi)容,進(jìn)行控制CPU即將要執(zhí)行的目標(biāo)指令; 問(wèn)題:如何改變CS、IP中的值? 設(shè)想: 1、通過(guò)使用Debug中的R命令進(jìn)行修改寄存器的值,例如rcs, rip。 結(jié)論:不可以。原因是:Debug是調(diào)試手段,并非程序方

    2024年02月08日
    瀏覽(22)
  • 一、1.匯編指令、寄存器和尋址方式

    一、1.匯編指令、寄存器和尋址方式

    立即數(shù):可以立即在一條機(jī)器指令后找到具體數(shù)值的數(shù),如內(nèi)存中00位寫(xiě)著加指令,01位寫(xiě)著1100_1111,意思就是將1100_1111(十進(jìn)制207)加到某處,反之可以表示數(shù)據(jù)的地址。 低端字節(jié)序:16位寄存器數(shù)據(jù)存入內(nèi)存(內(nèi)存單位為8位),寄存器低位存入內(nèi)存低位(如00)高位存入內(nèi)

    2024年02月14日
    瀏覽(27)
  • 匯編語(yǔ)言——第11章 標(biāo)志寄存器

    匯編語(yǔ)言——第11章 標(biāo)志寄存器

    目錄 ??????? 引言 11.1 ZF標(biāo)志 11.2 PF標(biāo)志 11.3 SF標(biāo)志 檢測(cè)點(diǎn)11.1 11.4 CF標(biāo)志 11.5 OF標(biāo)志 檢測(cè)點(diǎn)11.2 11.6 abc指令 11.7 sbb指令 11.8 cmp指令 11.9 檢測(cè)比較結(jié)果的條件轉(zhuǎn)移指令 檢測(cè)點(diǎn)11.3 11.10 DF標(biāo)志和串傳送指令 1、DF標(biāo)志 2、串傳送指令 11.11 pushf和popf 11.12 標(biāo)志寄存器在Debug中的表示

    2024年02月07日
    瀏覽(18)
  • 8086匯編語(yǔ)言寄存器清零學(xué)習(xí)

    8086匯編語(yǔ)言寄存器清零學(xué)習(xí)

    mov ax, 0? ? ? 這樣應(yīng)清零了; sub ax, ax ? ? 這樣也清了; xor ax, ax ? ? 這樣也清零了;自己跟自己異或,異或是同則結(jié)果為0、不同結(jié)果為1;自己和自己,每一位都是相同的,異或后結(jié)果為0; and ax, 0 ? ? 和0相與,這樣也清零了; 自己寫(xiě)代碼用?xor ax, ax ,用這個(gè)就對(duì)了,都

    2024年02月11日
    瀏覽(23)
  • 【匯編語(yǔ)言】棧區(qū)與SS:SP寄存器

    【匯編語(yǔ)言】棧區(qū)與SS:SP寄存器

    匯編語(yǔ)言 - 棧 棧是一塊特殊的內(nèi)存空間,本文涉及的CPU為8086CPU,所有與內(nèi)存地址有關(guān)的數(shù)字皆為16進(jìn)制 棧的運(yùn)行規(guī)律 - 先進(jìn)后出,后進(jìn)先出 以下為入棧的過(guò)程: 以下是出棧的過(guò)程: 以上就是棧的運(yùn)行機(jī)制,棧的入棧叫做push,出棧叫做pop 在8086CPU中,棧是一塊特殊的內(nèi)存空

    2023年04月08日
    瀏覽(23)
  • ARM寄存器組織

    ARM寄存器組織

    ?ARM有37個(gè)32位長(zhǎng)的寄存器: 1個(gè)用做PC(Program Counter); 1個(gè)用做CPSR(Current Program Status Register); 5個(gè)用做SPSR(Saved Program Status Registers); 30個(gè)通用寄存器。 ARM處理器共有37個(gè)寄存器,被分為若干個(gè)組(BANK),這些寄存器均為32位的寄存器。6個(gè)狀態(tài)寄存器,用以標(biāo)識(shí)CPU的工作狀

    2024年02月01日
    瀏覽(39)
  • ARM 寄存器

    ARM 寄存器

    Cortex A 系列的 ARM 處理器共有 40 個(gè) 32 位寄存器,其中 33 個(gè)為通用寄存器,7 個(gè)為狀態(tài)寄存器。用戶模式和系統(tǒng)模式共用同一組寄存器。 一、未分組寄存器 R0~R7 有些寄存器是所有運(yùn)行模式共用的,如 R0~R7,它們被稱為未分組寄存器。 在所有運(yùn)行模式下,未分組寄存器都指向同

    2024年02月02日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包