freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

[教育學(xué)]第三章arm指令系統(tǒng)-wenkub

2023-02-05 13:10:30 本頁(yè)面
 

【正文】 TR: 指令將寄存器中的 32位字或 8位無(wú)符號(hào)字節(jié)數(shù)據(jù)保存到存儲(chǔ)器中。 SUBRl應(yīng)為 24位有符號(hào)數(shù) SUBR1 … … MOV PC, LR ;返回 ARM指令集 主要內(nèi)容 存儲(chǔ)器訪問(wèn)指令 數(shù)據(jù)處理指令 分支指令 協(xié)處理器指令 雜項(xiàng)指令 ARM偽指令 存儲(chǔ)器訪問(wèn)指令 ARM微處理器用加載 /存儲(chǔ)指令訪問(wèn)存儲(chǔ)器,實(shí)現(xiàn)在寄存器和存儲(chǔ)器之間傳送數(shù)據(jù)。 二、 4種尋址操作 LDMIA / STMIA Increment After(先傳送,后地址加4) LDMIB / STMIB Increment Before(先地址加 4 ,后傳送 ) LDMDA / STMDA Decrement After(先傳送,后地址減4) LDMDB / STMDB Decrement Before (先地址減 4,后傳送 ) IA r1 地址 增加 r4 r0 r1 r4 r0 r1 r4 r0 r1 r4 r0 r10 IB DA DB STMxx r10, {r0,r1,r4} 基址寄存器 (Rn) 地址遞減,指針最后位置 地址遞增,指針最后位置 棧生長(zhǎng) 地址 頂空滿 增減次序 棧 、 塊遞增 棧 、 塊遞減 頂滿 頂空 頂滿 頂空 地址 增加 先增 STMIB STMFA LDMIB LDMED 后增 STMIA STMEA LDMIA LDMFD 地址 減少 先減 LDMDB LDMEA STMDB STMFD 后減 LDMDA LDMFA STMDA STMED 多寄存器 load和 stroe指令的堆棧和塊拷貝對(duì)照 STMFA( Full、 Add):棧滿遞增。 ? 空遞減堆棧 ED( Empty Descending ) : ——堆棧指針指向下一個(gè)將要放入數(shù)據(jù)的空位置 ,且由高地址向低地址生長(zhǎng) 。 這樣就有 4種類型的堆棧表示遞增和遞減的滿和空堆棧的各種組合。 堆棧尋址 堆棧尋址 ——堆棧尋址是隱含的,它使用一個(gè)專門的寄存器(堆棧指針 SP)指向一塊存儲(chǔ)區(qū)域 (堆棧 )。 ②完成指令操作后,用 (基址 +偏移 )的值修改基址寄存器 。 0x05 R1 0x200 基址 寄存器 0x200 R0 0x05 源 寄存器 偏移量 12 0x20C Preindexed: STR r0,[r1,12] 自動(dòng)變址模式 (修改基址寄存器 ): ——① 先基址 +偏移,生成操作數(shù)地址,做指令指定的操作。 R1—— 基址寄存器 R1的內(nèi)容 ——基地址 變址尋址 一、變址尋址 也叫基址加偏(變)址尋址 ——將 基址寄存器 的內(nèi)容與指令中給出的 地址偏移量相加 ,得到操作數(shù)所在的存儲(chǔ)器的有效地址。例如以下指令: LDR R0, [R1] 。將寄存器的內(nèi)容 循環(huán)右移 1位 ,空位用原來(lái) C標(biāo)志位填充。算術(shù)移位的對(duì)象是帶符號(hào)數(shù),移位過(guò)程中必須保持操作數(shù)的符號(hào)不變。 例如指令: ADD R3, R2, R1, LSR 2 ; R3← R2+(R1右移 2位 ) ADD R3, R2, R1, LSR R0 ; R3← R2+(R1右移 R0位 ) 第二操作數(shù)移位方式 共有 6種移位方式: ? — LSL 邏輯左移 — LSR 邏輯右移 ? — ASL 算術(shù)左移 — ASR 算術(shù)右移 ? — ROR 循環(huán)右移 — RRX 帶擴(kuò)展的循環(huán)右移 ( 1) LSL:邏輯左移 ,空出的最低有效位用 0填充。 immed_8=0x3F, rot=0xE,對(duì) 3F左移 4位 immed_8=0xFC, rot=0xF,對(duì) FC左移 2位 寄存器尋址 寄存器尋址: ——利用寄存器中的數(shù)值作為操作數(shù) 。 uses 0xFF ror 16 帶有立即數(shù)的 MOV 指令的二進(jìn)制編碼為: MOV R0, 0xF200 ; E3A00CF2. MOV R1, 0x110000 ; E3A01811. MOV R4, 0x12800 ; E3A04B4A. 0xF200 =0xF2循環(huán)右移( 2*C) 0x110000 =0x11循環(huán)右移( 2*8) 0x12800 =0x4A循環(huán)右移( 2*B) 只有能夠通過(guò)此構(gòu)造方法得到的才是合法的立即數(shù) 。 因此,將 ARM中的立即數(shù) 稱為 8位位圖 。 R0← # 0x3f 書寫立即數(shù)時(shí) , 要求以 “ # ” 為前綴 。 立即尋址 立即尋址也叫立即數(shù)尋址。 不符合條件的代碼依然占用一個(gè)時(shí)鐘周期 ( 相當(dāng)于一個(gè) NOP指令 ) 。 條件碼的表示: 條件編碼共 24 = 16 種 , 其中 ,15種用于指令的條件碼 。 – Rn: 目標(biāo)寄存器編碼。 ? ARM指令有 7種尋址方式: 立即尋址、寄存器尋址、寄存器間接尋址、基址尋址、堆棧尋址 、塊拷貝尋址、相對(duì)尋址。 – 有 7種尋址方式。 – 大多數(shù)指令都在單周期內(nèi)完成。 第 3章 ARM指令系統(tǒng) 第 3章 ARM指令系統(tǒng) 主要內(nèi)容 ARM指令結(jié)構(gòu) ARM尋址方式 ARM指令集 Thumb指令集 ARM偽指令 ARM匯編語(yǔ)言程序設(shè)計(jì) ARM指令系統(tǒng)概述 主要內(nèi)容 一、指令系統(tǒng)概念 二、 ARM指令的特點(diǎn) 三、 ARM指令的格式 四、指令的條件碼 ARM指令系統(tǒng)概述 一、指令系統(tǒng)概念 指令: 是規(guī)定計(jì)算機(jī)進(jìn)行某種操作的命令。 – 所有指令都可以條件執(zhí)行。 – 指令集可以通過(guò)協(xié)處理器擴(kuò)展。 三、 ARM指令的格式 ARM指令基本的語(yǔ)法格式為: Opcode {cond}{s} Rn, Rd {, Operand2} – Opcode: 指令操作碼。 – Rd: 包含第一個(gè)操作數(shù)的寄存器編碼。 每種條件碼用 2個(gè)英文縮寫字符表示 。 條件碼的書寫方法: 條件碼的位置在指令助記符的后面 ( 因此也稱為條件后綴 ) 。 立即尋址概念: 操作數(shù)本身就在指令中給出,只要取出指令也就取到了操作數(shù)。 ? 十六進(jìn)制數(shù) , #后加 0x或 amp。 記住一條準(zhǔn)則: “最后 8位移動(dòng)偶數(shù)位 ”得到立即數(shù)。 – 合法立即數(shù) : ? 0xFF; 0x104(其 8位圖為 0x41); 0xFF0; 0xFF00 – 非法立即數(shù): ? 0x101; 0x102; 0xFF1 深入理解: 一個(gè)合法的立即數(shù)可能有多種編碼方法,將使某些指令的執(zhí)行產(chǎn)生不同的結(jié)果。 這種尋址方式是各類微處理器經(jīng)常采用的一種方式,也是一種執(zhí)行效率較高的尋址方式。 0 31 0 0 ( 2) LSR:邏輯右移 ,空出的最高有效位用 0填充。如果源操作數(shù)是正數(shù),空出的最高有效位用 0 填充,如果是負(fù)數(shù)用 1填充。 31 0 C SUB R3, R2, R1, ROR 2 ; R3←R2+(R1 循環(huán)右移 2位 ) SUB R3, R2, R1, RRX R0 ; R3←R2 (R1帶進(jìn)位位循環(huán)右移 R0位 ) 第二操作數(shù)的移位位數(shù) 移位位數(shù)可以用立即數(shù)方式或者寄存器方式給出 ,其值均小于 32,應(yīng)為 031。R0←[R1] STR R0, [R1] 。 變址尋址方式常用于訪問(wèn)某基地址附近的地址單元。②然后自動(dòng)修改基址寄存器。 即先用基地址傳數(shù),然后修改基地址(基址 +偏移),也叫 后索引偏移 。 堆??煞譃閮煞N增長(zhǎng)方式: 向上生長(zhǎng): 向高地址方向生長(zhǎng),稱為 遞增堆棧 。 四種類型的堆棧工作方式 ? 滿遞增堆棧 FA( Full Ascending ) : ——堆棧指針指向最后壓入的數(shù)據(jù) , 且由低地址向高地址生長(zhǎng) 。 r4 100 r5 FF r6 1234 r7 A0BE lr 8034 ABCD 8765 102E 16 FFFF 1010 1234 8420 9753 高地址 LDMFA sp!,{r4r7,pc} 滿遞增 SP 100 FF 1234 AOBE 8034 1010 1234 8420 9753 r4 1 r5 14544 r6 0 r7 12 pc 9020 100100 FF FF1234A0BE A0BEpc 8034 Old SP 100 FF 1234A0BE 8034 SP Old SP 1234A0BE8034STMFD sp!,{r4r7,lr} 滿遞減 8034 …… 塊拷貝尋址 一 、 塊拷貝尋址 ——把存儲(chǔ)器中的一個(gè)數(shù)據(jù)塊加載到多個(gè)寄存器中 , 或者是把多個(gè)寄存器中的內(nèi)容保存到存儲(chǔ)器中 。 F棧頂滿空; A棧增減 LDMIB*( Inc、 Befo):塊先增地址、再傳數(shù)。 加載指令 用于將存儲(chǔ)器中的數(shù)據(jù)傳送到寄存器, 存儲(chǔ)指令 則完成相反的操作。 ? 注意: – 無(wú)符號(hào)字節(jié)加載時(shí),用 0將 8位的操作數(shù)擴(kuò)展到 32位。 STR{cond}B{T} Rd, 地址 ;存儲(chǔ) Rd中字節(jié)數(shù)據(jù), Rd中最低字節(jié)為傳送數(shù)據(jù)。 – T在用戶模式下無(wú)效。 指令舉例如下: ? LDR R1, [R0, 0x12] ;將 R0+0x12地址處的數(shù)據(jù)讀出,保存到 R1中 (R0的值不變 ) ? LDR R1, [R0, 0x12] ;將 R00x12地址處的數(shù)據(jù)讀出,保存到 R1中 (R0的值不變 ) ② 寄存器 ——寄存器中的數(shù)值可以加到基址寄存器,也可以從基址寄存器中減去這個(gè)數(shù)值。 ? PC不能用做偏移寄存器,也不能用于任何變址尋址模式。 半字和有符號(hào)字節(jié)的加載/存儲(chǔ)指令 這類 LDR/STR指令可實(shí)現(xiàn)半字(有符號(hào)和無(wú)符號(hào))、有符號(hào)字節(jié)數(shù)據(jù)的傳送。 LDR {cond}SB Rd, 地址 ;加載指定地址上有符號(hào)字節(jié)到 Rd中,高24位用符號(hào)位擴(kuò)展 LDR {cond}SH Rd, 地址 ;加載指定地址上的有符號(hào)半字到 Rd中,高 16位用符號(hào)位擴(kuò)展。 – 地址對(duì)齊 ——對(duì)半字傳送的地址必須為偶數(shù)。 LDRH R6, [R2], 2 ;將 R2地址上的半字?jǐn)?shù)據(jù)讀出到 R6,高 16位用零擴(kuò)展,然后修改 R2=R2+2。 這兩條指令 , 允許傳送 16個(gè)寄存器 R0R15的任何子集或所有寄存器 。 – 格式例子: {R1, R2, R6~R9} – 列表寄存器和存儲(chǔ)器地址的關(guān)系規(guī)則: 編號(hào)低的寄存器對(duì)應(yīng)于存儲(chǔ)器中低地址單元 , 編號(hào)高的寄存器對(duì)應(yīng)于存儲(chǔ)器中高地址單元 。 – 禁用情況: 后綴 “^”不允許在用戶模式或系統(tǒng)模式下使用 , 因?yàn)樗鼈儧]有 SPSR 。 其模式有如下 8種 ( 前面 4種用于數(shù)據(jù)塊的傳輸 ( 為存儲(chǔ)操作 ) , 后面 4種是堆棧操作 ): ?IA: 先傳、后地址加 4; ?IB: 先地址加 4 、后傳; ?DA:先傳、后地址減 4; ?DB:先地址減 4 、后傳; ?FD: 滿遞減堆棧,先地址減 后傳,與 DB對(duì)應(yīng); ?ED: 空遞減堆棧,先傳、后地址減 4,與 DA對(duì)應(yīng); ?FA: 滿遞增堆棧,先地址加 后傳,與 IB對(duì)應(yīng); ?EA: 空遞增堆棧,先傳、后地址加 4,與 IA對(duì)應(yīng)。 ? STMIA R1!, {R3 R9} ;將 R3~ R9的數(shù)據(jù)存儲(chǔ)到 R1指向的地址上,R1值更新 。 指令格式 SWP{cond}{B} Rd, Rm, [Rn] – B為可選后綴 ,若有 B,則交換字節(jié),否則交換 32位字 – Rd為被加載的寄存器 – Rm的數(shù)據(jù)
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1