日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ARM指令集详解(超详细!带实例!)

發布時間:2023/12/20 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ARM指令集详解(超详细!带实例!) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文地址

算術和邏輯指令

ADC : 帶進位的加法

(Addition with Carry)

ADC{條件}{S} <dest>, <op 1>, <op 2>dest = op_1 + op_2 + carry

ADC 將把兩個操作數加起來,并把結果放置到目的寄存器中。它使用一個進位標志位,這樣就可以做比 32 位大的加法。下列例子將加兩個 128 位的數。
128 位結果: 寄存器 0、1、2、和 3
第一個 128 位數: 寄存器 4、5、6、和 7
第二個 128 位數: 寄存器 8、9、10、和 11。

ADDS R0, R4, R8 ; 加低端的字 ADCS R1, R5, R9 ; 加下一個字,帶進位 ADCS R2, R6, R10 ; 加第三個字,帶進位 ADCS R3, R7, R11 ; 加高端的字,帶進位

如果如果要做這樣的加法,不要忘記設置 S 后綴來更改進位標志。

ADD : 加法

(Addition)

ADD{條件}{S} <dest>, <op 1>, <op 2>dest = op_1 + op_2

ADD 將把兩個操作數加起來,把結果放置到目的寄存器中。操作數 1 是一個寄存器,操作數 2 可以是一個寄存器,被移位的寄存器,或一個立即值:

ADD R0, R1, R2 ; R0 = R1 + R2 ADD R0, R1, #256 ; R0 = R1 + 256 ADD R0, R2, R3,LSL#1 ; R0 = R2 + (R3 << 1)

加法可以在有符號和無符號數上進行。

AND : 邏輯與

(logical AND)

AND{條件}{S} <dest>, <op 1>, <op 2>dest = op_1 AND op_2

AND 將在兩個操作數上進行邏輯與,把結果放置到目的寄存器中;對屏蔽你要在上面工作的位很有用。 操作數 1 是一個寄存器,操作數 2 可以是一個寄存器,被移位的寄存器,或一個立即值:

AND R0, R0, #3 ; R0 = 保持 R0 的位 0 和 1,丟棄其余的位。

AND 的真值表(二者都是 1 則結果為 1):

Op_1Op_2結果
000
010
100
111

BIC : 位清除

(Bit Clear)

BIC{條件}{S} <dest>, <op 1>, <op 2>dest = op_1 AND (!op_2)

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

BIC R0, R0, #%1011 ; 清除 R0 中的位 0、1、和 3。保持其余的不變。

BIC 真值表 :

Op_1Op_2結果
000
010
101
110

譯注:邏輯表達式為 Op_1 AND NOT Op_2
 

EOR : 邏輯異或

(logical Exclusive OR)

EOR{條件}{S} <dest>, <op 1>, <op 2>dest = op_1 EOR op_2

EOR 將在兩個操作數上進行邏輯異或,把結果放置到目的寄存器中;對反轉特定的位有用。操作數 1 是一個寄存器,操作數 2 可以是一個寄存器,被移位的寄存器,或一個立即值:

EOR R0, R0, #3 ; 反轉 R0 中的位 0 和 1

EOR 真值表(二者不同則結果為 1):

Op_1Op_2結果
000
011
101
110

MOV : 傳送

(Move)

MOV{條件}{S} <dest>, <op 1>dest = op_1

MOV 從另一個寄存器、被移位的寄存器、或一個立即值裝載一個值到目的寄存器。你可以指定相同的寄存器來實現 NOP 指令的效果,你還可以專門移位一個寄存器:

MOV R0, R0 ; R0 = R0... NOP 指令 MOV R0, R0, LSL#3 ; R0 = R0 * 8

如果 R15 是目的寄存器,將修改程序計數器或標志。這用于返回到調用代碼,方法是把連接寄存器的內容傳送到 R15:

MOV PC, R14 ; 退出到調用者 MOVS PC, R14 ; 退出到調用者并恢復標志位

(不遵從 32-bit 體系)
 

MVN : 傳送取反的值

(MoveNegative)

MVN{條件}{S} <dest>, <op 1>dest = !op_1

MVN 從另一個寄存器、被移位的寄存器、或一個立即值裝載一個值到目的寄存器。不同之處是在傳送之前位被反轉了,所以把一個被取反的值傳送到一個寄存器中。這是邏輯非操作而不是算術操作,這個取反的值加 1 才是它的取負的值:

MVN R0, #4 ; R0 = -5 MVN R0, #0 ; R0 = -1

ORR : 邏輯或

(logical OR)

ORR{條件}{S} <dest>, <op 1>, <op 2>dest = op_1 OR op_2

OR 將在兩個操作數上進行邏輯或,把結果放置到目的寄存器中;對設置特定的位有用。操作數 1 是一個寄存器,操作數 2 可以是一個寄存器,被移位的寄存器,或一個立即值:

ORR R0, R0, #3 ; 設置 R0 中位 0 和 1

OR 真值表(二者中存在 1 則結果為 1):

Op_1Op_2結果
000
011
101
111

RSB : 反向減法

(Reverse Subtraction)

RSB{條件}{S} <dest>, <op 1>, <op 2>dest = op_2 - op_1

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

RSB R0, R1, R2 ; R0 = R2 - R1 RSB R0, R1, #256 ; R0 = 256 - R1 RSB R0, R2, R3,LSL#1 ; R0 = (R3 << 1) - R2

反向減法可以在有符號或無符號數上進行。

RSC : 帶借位的反向減法

(Reverse Subtraction with Carry)

RSC{條件}{S} <dest>, <op 1>, <op 2>dest = op_2 - op_1 - !carry

同于 SBC,但倒換了兩個操作數的前后位置。

SBC : 帶借位的減法

(Subtraction with Carry)

SBC{條件}{S} <dest>, <op 1>, <op 2>dest = op_1 - op_2 - !carry

SBC 做兩個操作數的減法,把結果放置到目的寄存器中。它使用進位標志來表示借位,這樣就可以做大于 32 位的減法。SUB 和 SBC 生成進位標志的方式不同于常規,如果需要借位則清除進位標志。所以,指令要對進位標志進行一個非操作 - 在指令執行期間自動的反轉此位。

SUB : 減法

(Subtraction)

SUB{條件}{S} <dest>, <op 1>, <op 2>dest = op_1 - op_2

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

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

減法可以在有符號和無符號數上進行。

移位指令

ARM 處理器組建了可以與數據處理指令(ADC、ADD、AND、BIC、CMN、CMP、EOR、MOV、MVN、ORR、RSB、SBC、SUB、TEQ、TST)一起使用的桶式移位器(barrel shifter)。你還可以使用桶式移位器影響在 LDR/STR 操作中的變址值。

譯注:移位操作在 ARM 指令集中不作為單獨的指令使用,它是指令格式中是一個字段,在匯編語言中表示為指令中的選項。如果數據處理指令的第二個操作數或者單一數據傳送指令中的變址是寄存器,則可以對它進行各種移位操作。如果數據處理指令的第二個操作數是立即值,在指令中用 8 位立即值和 4 位循環移位來表示它,所以對大于 255 的立即值,匯編器嘗試通過在指令中設置循環移位數量來表示它,如果不能表示則生成一個錯誤。在邏輯類指令中,邏輯運算指令由指令中 S 位的設置或清除來確定是否影響進位標志,而比較指令的 S 位總是設置的。在單一數據傳送指令中指定移位的數量只能用立即值而不能用寄存器。

下面是給不同的移位類型的六個助記符:

LSL 邏輯左移 ASL 算術左移 LSR 邏輯右移 ASR 算術右移 ROR 循環右移 RRX 帶擴展的循環右移

ASL 和 LSL 是等同的,可以自由互換。

你可以用一個立即值(從 0 到 31)指定移位數量,或用包含在 0 和 31 之間的一個值的寄存器指定移位數量。

LSL/ASL : 邏輯或算術左移

(Logical or Arithmetic Shift Left)

Rx, LSL #n or Rx, ASL #n or Rx, LSL Rn or Rx, ASL Rn

接受 Rx 的內容并按用‘n’或在寄存器 Rn 中指定的數量向高有效位方向移位。最低有效位用零來填充。除了概念上的第 33 位(就是被移出的最小的那位)之外丟棄移出最左端的高位,如果邏輯類指令中 S 位被設置了,則此位將成為從桶式移位器退出時進位標志的值。

考慮下列:

MOV R1, #12 MOV R0, R1, LSL#2

在退出時,R0 是 48。 這些指令形成的總和是 R0 = #12, LSL#2 等同于 BASIC 的 R0 = 12 << 2

LSR : 邏輯右移

(Logical Shift Right)

Rx, LSR #n or Rx, LSR Rn

它在概念上與左移相對。把所有位向更低有效位方向移動。如果邏輯類指令中 S 位被設置了,則把最后被移出最右端的那位放置到進位標志中。它同于 BASIC 的 register = value >>> shift。

ASR : 算術右移

(Arithmetic Shift Right)

Rx, ASR #n or Rx, ASR Rn

類似于 LSR,但使用要被移位的寄存器(Rx)的第 31 位的值來填充高位,用來保護補碼表示中的符號。如果邏輯類指令中 S 位被設置了,則把最后被移出最右端的那位放置到進位標志中。它同于 BASIC 的 register = value >> shift。

ROR : 循環右移

(Rotate Right)

Rx, ROR #n or Rx, ROR Rn

循環右移類似于邏輯右移,但是把從右側移出去的位放置到左側,如果邏輯類指令中 S 位被設置了,則同時放置到進位標志中,這就是位的‘循環’。一個移位量為 32 的操作將導致輸出與輸入完全一致,因為所有位都被移位了 32 個位置,又回到了開始時的位置!

RRX : 帶擴展的循環右移

(Rotate Right with extend)

Rx, RRX

這是一個 ROR#0 操作,它向右移動一個位置 - 不同之處是,它使用處理器的進位標志來提供一個要被移位的 33 位的數量。
轉者注:將寄存器內容循環右移一位,空位用原來的C來 填充,移出的最低有效位填入C。

乘法指令

指令格式

這兩個指令與普通算術指令在對操作數的限制上有所不同:

  • 給出的所有操作數、和目的寄存器必須為簡單的寄存器。
  • 你不能對操作數 2 使用立即值或被移位的寄存器。
  • 目的寄存器和操作數 1
  • 最后,你不能指定 R15 為目的寄存器。

MLA : 帶累加的乘法

(Multiplication with Accumulate)

MLA{條件}{S} <dest>, <op 1>, <op 2>, <op 3>dest = (op_1 * op_2) + op_3

MLA 的行為同于 MUL,但它把操作數 3 的值加到結果上。這在求總和時有用。

MUL : 乘法

(Multiplication)

MUL{條件}{S} <dest>, <op 1>, <op 2>dest = op_1 * op_2

MUL 提供 32 位整數乘法。如果操作數是有符號的,可以假定結果也是有符號的。

比較指令

指令格式

譯注:CMN 和 CMP 是算術指令,TEQ 和 TST 是邏輯指令。把它們歸入一類的原因是它們的 S 位總是設置的,就是說,它們總是影響標志位。

CMN : 比較取負的值

(Compare Negative)

CMN{條件}{P} <op 1>, <op 2>status = op_1 - (- op_2)

CMN 同于 CMP,但它允許你與小負值(操作數 2 的取負的值)進行比較,比如難于用其他方法實現的用于結束列表的 -1。這樣與 -1 比較將使用:

CMN R0, #1 ; 把 R0 與 -1 進行比較

詳情參照 CMP 指令。

CMP : 比較

(Compare)

CMP{條件}{P} <op 1>, <op 2>status = op_1 - op_2

CMP 允許把一個寄存器的內容如另一個寄存器的內容或立即值進行比較,更改狀態標志來允許進行條件執行。它進行一次減法,但不存儲結果,而是正確的更改標志。標志表示的是操作數 1 比操作數 2 如何(大小等)。如果操作數 1 大于操作操作數 2,則此后的有 GT 后綴的指令將可以執行。
明顯的,你不需要顯式的指定 S 后綴來更改狀態標志… 如果你指定了它則被忽略。

TEQ : 測試等價

(Test Equivalence)

TEQ{條件}{P} <op 1>, <op 2>Status = op_1 EOR op_2

TEQ 類似于 TST。區別是這里的概念上的計算是 EOR 而不是 AND。這提供了一種查看兩個操作數是否相同而又不影響進位標志(不象 CMP那樣)的方法。加上 P 后綴的 TEQ 還可用于改變 R15 中的標志(在 26-bit 模式中)。詳情請參照 psr.html,在 32-bit 模式下如何做請參見這里。

TST : 測試位

(Test bits)

TST{條件}{P} <op 1>, <op 2>Status = op_1 AND op_2

TST 類似于 CMP,不產生放置到目的寄存器中的結果。而是在給出的兩個操作數上進行操作并把結果反映到狀態標志上。使用 TST 來檢查是否設置了特定的位。操作數 1 是要測試的數據字而操作數 2 是一個位掩碼。經過測試后,如果匹配則設置 Zero 標志,否則清除它。象 CMP 那樣,你不需要指定 S 后綴。

TST R0, #%1 ; 測試在 R0 中是否設置了位 0。

分支指令

轉者注:B和BL其實就是函數入口點跳轉之類的東西了,但是這個說明真心看不懂。。。

B : 分支

(Branch)

B{條件} <地址>

B 是最簡單的分支。一旦遇到一個 B 指令,ARM 處理器將立即跳轉到給定的地址,從那里繼續執行。
注意存儲在分支指令中的實際的值是相對當前的 R15 的值的一個偏移量;而不是一個絕對地址。
它的值由匯編器來計算,它是 24 位有符號數,左移兩位后有符號擴展為 32 位,表示的有效偏移為 26 位(+/- 32 M)。
在其他處理器上,你可能經常見到這樣的指令:

OPT 1 LDA &70 CMP #0 BEQ Zero STA &72 .Zero RTS

(取自 Acorn Electron User Guide issue 1 page 213)
在 ARM 處理器上,它們將變成下面這些東西:

OPT 1 ADR R1, #&70 LDR R0, [R1] CMP #0 BEQ Zero STR R0, [R1, #2] .Zero MOV PC, R14

這不是一個很好的例子,但你可以構想如何更好的去條件執行而不是分支。另一方面,如果你有大段的代碼或者你的代碼使用狀態標志,那么你可以使用條件執行來實現各類分支: 這樣一個單一的簡單條件執行指令可以替代在其他處理器中存在的所有這些分支和跳轉指令。

OPT 1 ADR R1, #&70 LDR R0, [R1] CMP R0, #0 STRNE R0, [R1, #2] MOV PC, R14

轉者注:這段看不懂

BL : 帶連接的分支

(Branch with Link)

BL{條件} <地址>

BL 是另一個分支指令。就在分支之前,在寄存器 14 中裝載上 R15 的內容。你可以重新裝載 R14 到 R15 中來返回到在這個分支之后的那個指令,

它是子例程的一個基本但強力的實現。它的作用在屏幕裝載器 2 (例子 4)中得以很好的展現…

.load_new_formatBL switch_screen_modeBL get_screen_infoBL load_palette.new_loopMOV R1, R5BL read_byteCMP R0, #255BLEQ read_loopSTRB R0, [R2, #1]!

…在這里我們見到在裝載器循環之前調用了三個子例程。接著,一旦滿足了條件執行就在循環中調用了 read_byte 子例程。

條件執行

ARM 處理器的一個非常特殊的特征是它的條件執行。我們指的不是基本的如果進位則分支,ARM 使這個邏輯階段進一步深化為如果進位則 XXX- 這里的 XXX 是任何東西。
為了舉例,下面是 Intel 8086 處理器分支指令的一個列表:

  • JA Jump if Above
  • JAE Jump if Above or Equal
  • JB Jump if Below
  • JBE Jump if Below or Equal
  • JC Jump if Carry
  • JCXZ Jump if CX Zero (CX is a register that can be used for loop counts)
  • JE Jump if Equal
  • JG Jump if Greater than
  • JGE Jump if Greater than or Equal
  • JL Jump if Less than
  • JLE Jump if Less Than or Equal
  • JMP JuMP
  • JNA Jump if Not Above
  • JNAE Jump if Not Above or Equal
  • JNB Jump if Not Below
  • JNBE Jump if Not Below or Equal
  • JNC Jump if No Carry
  • JNE Jump if Not Equal
  • JNG Jump if Not Greater than
  • JNGE Jump if Not Greater than or Equal
  • JNL Jump if Not Less than
  • JNLE Jump if Not Less than or Equal
  • JNO Jump if Not Overflow
  • JNP Jump if Not Parity
  • JNS Jump if Not Sign
  • JNZ Jump if Not Zero
  • JO Jump if Overflow
  • JP Jump if Parity
  • JPE Jump if Parity Even
  • JPO Jump if Parity Odd
  • JS Jump if Sign
  • JZ Jump if Zero

80386 添加了:

  • JECXZ Jump if ECX Zero

作為對比,ARM 處理器只提供了:

  • B 分支
  • BL 帶連接的分支

但 ARM 提供了條件執行,你可以不受這個表面上不靈活的方式的限制:

  • BEQ Branch if EQual
  • BNE Branch if Not Equal
  • BVS Branch if oVerflow Set
  • BVC Branch if oVerflow Clear
  • BHI Branch if HIgher
  • BLS Branch if Lower or the Same
  • BPL Branch if PLus
  • BMI Branch if MInus
  • BCS Branch if Carry Set
  • BCC Branch if Carry Clear
  • BGE Branch if Greater than or Equal
  • BGT Branch if Greater Than
  • BLE Branch if Less than or Equal
  • BLT Branch if Less Than
  • BLEQ Branch with Link if EQual
    ….
  • BLLT Branch with Link if Less Than

還有兩個代碼,

  • AL - ALways,缺省條件所以不須指定
  • NV - NeVer,不是非常有用。你無論如何不要使用這個代碼…

當你發現所有 Bxx 指令實際上是同一個指令的時候,緊要關頭就到了。
接著你會想,如果你可以在一個分支指令上加上所有這些條件,那么對一個寄存器裝載指令能否加上它們? 答案是可以。
下面是可獲得的條件代碼的列表:
EQ : 等于
如果一次比較之后設置了 Z 標志。
 
NE : 不等于
如果一次比較之后清除了 Z 標志。
 
VS : 溢出設置
如果在一次算術操作之后設置了 V 標志,計算的結果不適合放入一個 32bit 目標寄存器中。
 
VC : 溢出清除
如果清除了 V 標志,與 VS 相反。
 
HI : 高于(無符號)
如果一次比較之后設置了 C 標志并清除了 Z 標志。
 
LS : 低于或同于(無符號)
如果一次比較操作之后清除了 C 標志或設置了 Z 標志。
 
PL : 正號
如果一次算術操作之后清除了 N。出于定義‘正號’的目的,零是正數的原因是它不是負數…
 
MI : 負號
如果一次算術操作之后設置了 N 標志。
 
CS : 進位設置
如果一次算術操作或移位操作之后設置了 C 標志,操作的結果不能表示為 32bit。你可以把 C 標志當作結果的第 33 位。
 
CC : 進位清除
與 CS 相反。
 
GE : 大于或等于(有符號)
如果一次比較之后…
設置了 N 標志并設置了 V 標志
或者…
清除了 N 標志并清除了 V 標志。
 
GT : 大于(有符號)
如果一次比較之后…
設置了 N 標志并設置了 V 標志
或者…
清除了 N 標志并清除了 V 標志
并且…
清除了 Z 標志。
 
LE : 小于或等于(有符號)
如果一次比較之后…
設置了 N 標志并清除了 V 標志
或者…
清除了 N 標志并設置了 V 標志
并且…
設置了 Z 標志。
 
LT : 小于(有符號)
如果一次比較之后…
設置了 N 標志并清除了 V 標志。
或者…
清除了 N 標志并設置了 V 標志。
 
AL : 總是
缺省條件,所以不用明顯聲明。
 
NV : 從不
不是特別有用,它表示應當永遠不執行這個指令。是窮人的 NOP。
包含 NV 是為了完整性(與 AL 相對),你不應該在你的代碼中使用它。
有一個在最后的條件代碼 S,它以相反的方式工作。當用于一個指令的時候,導致更改狀態標志。這不是自動發生的 - 除非這些指令的目的是設置狀態。例如:

ADD R0, R0, R1ADDS R0, R0, R1ADDEQS R0, R0, R1

第一個例子是一個基本的加法(把 R1 的值增加到 R0),它不影響狀態寄存器。
第二個例子是同一個加法,只不過它導致更改狀態寄存器。
最后一個例子是同一個加法,更改狀態寄存器。不同在于它是一個有條件的指令。只有前一個操作的結果是 EQ (如果設置了 Z 標志)的時候它才執行。

下面是條件執行的一個工作中的例子。你把寄存器 0 與存儲在寄存器 10 中內容相比較。

如果不等于 R10,則調用一個軟件中斷,增加它并分支回來再次做這些。否則清除 R10 并返回到調用它的那部分代碼(它的地址存儲在 R14)。

\ 條件執行的一個例子

.loop ; 標記循環開始位置CMP R0, R10 ; 把 R0 與 R10 相比較SWINE &40017 ; 不等于: 調用 SWI &40017ADDNE R0, R0, #1 ; 向 R0 加 1BNE loop ; 分支到 'loop'MOV R10, #0 ; 等于 : 設置 R10 為零LDMFD R13!, {R0-R12,PC} ; 返回到調用者

注解:
SWI 編號就象我寫的這樣。在 RISC OS 下,它是給 Econet_DoImmediate 的編號。不要字面的接受它,這只是一個例子!

你可能以前沒見過 LDMFD,它從棧中裝載多個寄存器。在這個例子中,我們從一個完全正式的棧中裝載 R0 至 R12 和 R14。關于寄存器裝載和存儲的更多信息請參閱 str.html。

我說要裝載 R14。那么為什么要把它放入 PC 中? 原因是此時 R14 存儲的值包含返回地址。我們也可以采用:

LDMFD R13!, {R0-R12,R14} MOV PC, R14

但是直接恢復到 PC 中可以省略這個 MOV 語句。

最后,這些寄存器很有可能被一個 SWI 調用所占用(依賴于在調用期間執行的代碼),所以你最好把你的重要的寄存器壓入棧中,以后在恢復它們。

SWI 指令

SWI : 軟件中斷

(Software Interrupt)

SWI{條件} <24 位編號>

指令格式
這是一個簡單的設施,但可能是最常用的。多數操作系統設施是用 SWI 提供的。沒有 SWI 的 RISC OS 是不可想象的。

Nava Whiteford 解釋了 SWI 是如何工作的(最初在 Frobnicate issue 12?)…

SWI 是什么?

SWI 表示 Software Interrupt。在 RISC OS 中使用 SWI 來訪問操作系統例程或第三方生產的模塊。許多應用使用模塊來給其他應用提供低層外部訪問。
SWI 的例子有:

文件器 SWI,它輔助讀寫磁盤、設置屬性等。

打印機驅動器 SWI,用來輔助使用打印并行端口。

FreeNet/Acorn TCP/IP 協議棧 SWI,用 TCP/IP 協議在 Internet 上發送和接收數據。

在以這種方式使用的時候,SWI 允許操作系統擁有一個模塊結構,這意味著用來建立完整的操作系統的所需的代碼可以被分割成許多小的部分(模塊)和一個模塊處理程序(handler)。

當 SWI 處理程序得到對特定的例程編號的一個請求的時候,它找到這個例程的位置并執行它,并傳遞(有關的)任何數據。

它是如何工作的?

首先查看一下如何使用它。一個 SWI 指令(匯編語言)看起來如下:

SWI &02

SWI "OS_Write0"

這些指令實際上是相同的,將被匯編成相同的指令。唯一的不同是第二個指令使用一個字符串來表示 SWI 編號 &02。
在使用采用了字符串編號的程序的時候,在執行之前首先查找這個字符串。
在這里我們不想處理字符串,因為它不能給出它要進行什么的一個真實表示。它們通常用于增進一個程序的清晰程度,但不是實際執行的指令。

讓我們再次看一下第一個指令:

SWI &02

這是什么意思? 字面的意思是進入 SWI 處理程序并傳遞值 &02。在 RISC OS 中這意味著執行編號是 &02 的例程。
它是如何這么作的? 它如何傳遞 SWI 編號和進入 SWI 處理程序?

如果你查看內存的開始 32 字節(位于 0-&1C)并反匯編它們(查開實際的 ARM 指令)你將見到如下:

地址 內容 反匯編

00000000 : 0..? : E5000030 : STR R0,[R0,#-48] 00000004 : .ó?? : E59FF31C : LDR PC,&00000328 00000008 : .ó?? : E59FF31C : LDR PC,&0000032C 0000000C : .ó?? : E59FF31C : LDR PC,&00000330 00000010 : .ó?? : E59FF31C : LDR PC,&00000334 00000014 : .ó?? : E59FF31C : LDR PC,&00000338 00000018 : .ó?? : E59FF31C : LDR PC,&0000033C 0000001C : 2?? : E3A0A632 : MOV R10,#&3200000

讓我們仔細看一下。
除了第一個和最后一個指令之外(它們是特殊情況)你見到的都是把一個新值裝載到 PC (程序計數器)的指令,它們告訴計算機到哪里去執行下一個指令。

還展示了這個值是從內存中的一個地址接受來的。(你可以在 !Zap 主菜單上使用“Read Memory”選項去自己查看一下。)

這看起來好象與 SWI 沒多少關系,下面做進一步的說明。

一個 SWI 所做的一切就是把模式改變成超級用戶并設置 PC 來執行在地址 &08 處的下一個指令!

把處理器轉換到超級用戶模式會切換掉兩個寄存器 r13 和 r14 并用 r13_svc 和 r14_svc 替換它們。

在進入超級用戶模式的時候,還把 r14_svc 設置為在這個 SWI 指令之后的地址。

這個實際上就象一個連接到地址 &08 的分支指令(BL &08),但帶有用于一些數據(SWI 編號)的空間。

象我說過的那樣,地址 &08 包含跳轉到另一個地址的一個指令,就是實際的 SWI 程序的地址!

此時你可能會想“稍等一會! 還有 SWI 編號呢?”。實際上處理器忽略這個值本身。SWI 處理程序使用傳遞來的 r14_svc 的值來獲取它。

下面是完成它的步驟(在存儲寄存器 r0-r12 之后):

  • 它從 r14 中減去 4 來獲得 SWI 指令的地址。

  • 把這個指令裝載到一個寄存器。

  • 清除這個指令的高端 8 位,去掉了 OpCode 而只剩下的 SWI 編號。

  • 使用這個值來找到要被執行的代碼的例程的地址(使用查找表等)。

  • 恢復寄存器 r0-r12。

  • 使處理器離開超級用戶模式。

  • 跳轉到這個例程的地址。

  • 容易吧! ;)
    下面是一個例子,來自 ARM610 datasheet:

    0x08 B SupervisorEntryTable DCD ZeroRtn DCD ReadCRtn DCD WriteIRtn...Zero EQU 0 ReadC EQU 256 WriteI EQU 512; SWI 包含需要的例程在位 8-23 中和數據(如果有的話)在位 0-7 中。 ; 假定 R13_svc 指向了一個合適的棧STMFD R13, {r0-r2 , R14}; 保存工作寄存器和返回地址。 LDR R0,[R14,#-4]; 得到 SWI 指令。 BIC R0,R0, #0xFF000000; 清除高端的 8 位。 MOV R1, R0, LSR #8; 得到例程偏移量。 ADR R2, EntryTable; 得到入口表(EntryTable)的開始地址。 LDR R15,[R2,R1,LSL #2]; 分支到正確的例程WriteIRtn; 寫 R0 中的位 0 - 7 中的字符。.............LDMFD R13, {r0-r2 , R15}^; 恢復工作空間,并返回、恢復處理器模式和標志。

    這就是 SWI 指令的基本處理步驟。

    總結

    以上是生活随笔為你收集整理的ARM指令集详解(超详细!带实例!)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    一级黄色av | 综合在线亚洲 | 在线免费观看黄色大片 | 综合天堂av久久久久久久 | 久久99国产一区二区三区 | 99久久爱| 免费福利在线 | 久久久黄色av | 久久99精品国产麻豆婷婷 | 国产精品网站一区二区三区 | 国产无遮挡猛进猛出免费软件 | 国产探花在线看 | 色婷婷狠狠五月综合天色拍 | 91视频国产高清 | 欧美极品少妇xxxx | 久草在线91 | 久久免费视频在线观看 | 欧美日韩一区三区 | 婷婷伊人五月天 | 欧美日韩午夜爽爽 | 日韩中文字幕视频在线 | 人人干人人添 | 免费看一级特黄a大片 | 91最新视频 | 天天干夜夜爽 | 亚洲最大免费成人网 | 日韩国产精品久久久久久亚洲 | 欧美日韩久久 | 国产高清专区 | 成年人免费在线观看网站 | 国际精品久久久久 | 国产精品免费久久久久久久久久中文 | 国产日韩欧美在线观看视频 | 96视频在线 | 久久国精品 | 91porny九色在线播放 | 国产成人精品三级 | 国产69精品久久久久99尤 | 奇米影视777影音先锋 | 99久久久久久久久 | 亚洲欧洲xxxx | 日产乱码一二三区别免费 | 亚洲aⅴ一区二区三区 | 日本精a在线观看 | 在线观看色视频 | 96久久欧美麻豆网站 | 中文字幕中文 | 欧美成人在线网站 | 91免费观看视频网站 | 日韩大片在线看 | 亚州精品天堂中文字幕 | 国产成人资源 | 2021国产精品 | 日韩久久久久久久久久 | 亚洲经典中文字幕 | 欧美日韩国产精品一区二区亚洲 | av在线免费播放网站 | 欧美色888 | 综合网在线视频 | 久久视频国产精品免费视频在线 | 五月天久久久 | 久久中文字幕导航 | 久久久人人爽 | 欧美肥妇free | 亚洲精品中文字幕视频 | 中文字幕第一页av | 亚洲精品久久激情国产片 | 久久看片网 | 久久国产精品免费一区 | 成人中文字幕+乱码+中文字幕 | 人人草在线视频 | 综合色站 | 91免费版在线 | 91在线播 | 久久综合精品国产一区二区三区 | 99国产一区二区三精品乱码 | 久久伦理影院 | 狠狠干夜夜爽 | 国产91免费在线观看 | 热九九精品 | 欧美一二三区在线观看 | 国产高清专区 | 日韩高清二区 | 一级电影免费在线观看 | 久视频在线播放 | 在线视频欧美日韩 | 在线观看视频h | a视频免费 | 国产精品久久久久久久午夜片 | 天天综合网天天综合色 | 日本久久不卡视频 | 日韩理论片在线 | 国产高清免费在线观看 | 久久精品一区二区三区中文字幕 | 亚洲精品久久久蜜桃直播 | a一片一级 | 欧美一区免费在线观看 | a电影免费看 | 国产在线美女 | 天天射天天色天天干 | 91在线观看黄 | 在线精品视频免费播放 | 黄色三级在线观看 | 在线视频18在线视频4k | 成人欧美一区二区三区在线观看 | 国产爽妇网 | 999久久久久久久久 69av视频在线观看 | 欧美精品中文字幕亚洲专区 | 久久久受www免费人成 | 91视频最新网址 | 91新人在线观看 | 国产不卡在线观看 | 久久久国产网站 | 国产中文字幕网 | 欧美精品乱码久久久久 | 伊人婷婷久久 | 久久久久欧美精品999 | 综合网天天| 久久人人爽人人爽人人片av软件 | 欧美精品久 | 91福利区一区二区三区 | www.夜夜骑.com| 国产亚洲日 | 日韩精选在线 | 久久99国产精品自在自在app | 懂色av一区二区三区蜜臀 | 99免在线观看免费视频高清 | 97av在线 | 欧美在线视频一区二区 | 日韩电影在线观看一区二区 | 精品日韩在线一区 | 天天操夜夜叫 | 国产精品久久久久久一区二区 | 日本中文字幕网址 | 不卡的av电影在线观看 | 色偷偷男人的天堂av | 亚洲影院一区 | 欧美日韩精品二区第二页 | 91污污| 五月婷婷导航 | 久久精品亚洲精品国产欧美 | 日韩高清三区 | 天天拍天天色 | 91精品国产九九九久久久亚洲 | 久久免费国产 | 精品在线视频一区 | 国产中文字幕一区二区 | 成人av资源网站 | 日韩欧美在线一区 | 久99久中文字幕在线 | 亚洲伊人网在线观看 | 亚洲成人频道 | 五月婷婷久久丁香 | 午夜av片 | 激情综合五月 | 中文字幕一区二区三区视频 | 国产不卡毛片 | 日韩v欧美v日本v亚洲v国产v | 日韩在线观看视频网站 | 91中文字幕永久在线 | 九九久久久久久久久激情 | 91日本在线播放 | 99久久婷婷国产综合亚洲 | 欧美精选一区二区三区 | 日韩精品在线免费观看 | 在线亚洲人成电影网站色www | 欧美资源在线观看 | 亚洲一区美女视频在线观看免费 | 99在线视频免费观看 | 激情欧美一区二区免费视频 | 亚洲综合小说电影qvod | 中文字幕网站视频在线 | 手机av网站| 波多野结衣视频一区二区 | 久久激情五月激情 | 高潮久久久 | 91网在线看 | 天天干天天看 | 狠狠色伊人亚洲综合网站色 | 天天操月月操 | 在线日韩三级 | 激情五月六月婷婷 | 免费高清国产 | 成人性生爱a∨ | 日日夜夜综合 | 五月天天av | 成人动态视频 | 99亚洲精品在线 | 日韩高清在线一区二区 | 麻豆首页 | 日日夜夜网 | 五月天激情开心 | 久久激情影院 | 国产麻豆视频网站 | 天躁狠狠躁| 亚洲国产电影在线观看 | 国产亚洲欧美在线视频 | 日韩乱码在线 | 夜夜视频资源 | 日韩精品专区在线影院重磅 | 日韩xxxbbb | 天天曰夜夜爽 | av九九九 | 色综合天天色综合 | 狠狠狠色丁香婷婷综合久久88 | 一本一本久久aa综合精品 | 9999精品视频 | 亚洲国产中文字幕在线观看 | 顶级bbw搡bbbb搡bbbb | 黄色大片日本免费大片 | 91日韩精品一区 | 国产色视频网站2 | 97色在线观看 | 成人免费色 | 久久成人高清视频 | 欧美成年人在线视频 | 丁香六月在线 | 国产传媒中文字幕 | 一区二区三区日韩视频在线观看 | 麻豆视频91 | 久久精品国产一区二区电影 | 99爱国产精品| 日韩在线视频免费观看 | 国产精品一区二区三区久久 | av先锋中文字幕 | 欧美一区二区三区不卡 | 久久久久国产成人免费精品免费 | 中文av免费 | 国产原创在线观看 | 国产亚洲成av人片在线观看桃 | 国产成人av电影在线 | 亚洲 中文 在线 精品 | 亚洲人精品午夜 | 国产在线观看你懂得 | 中文字幕在线影视资源 | 精品视频9999| 欧美视频日韩视频 | 国产精品久久久久久久久久久久久 | av大全在线观看 | 99理论片 | 天天干天天色2020 | 国产久草在线 | jizz18欧美18| 国产视频第二页 | 91精品国自产在线观看 | 在线有码中文 | 欧美一级电影片 | av一级在线观看 | 欧美一区免费在线观看 | 日韩欧美视频在线观看免费 | 国产精品一区二区在线观看免费 | 四虎影视成人永久免费观看亚洲欧美 | 91精品免费在线 | 久草精品在线观看 | 国产群p | 精久久久久 | 久久九九免费视频 | 亚洲欧洲日韩在线观看 | 免费国产在线精品 | 在线电影 一区 | 在线观看中文字幕 | www日日| 国产一二三在线视频 | 一区二区三区视频 | 婷婷成人亚洲综合国产xv88 | 国产a网站| av在线免费在线 | 一区二区不卡视频在线观看 | 欧美日韩视频在线观看一区二区 | 色在线亚洲 | 国产视频资源在线观看 | 国产精品18久久久 | 婷婷九月丁香 | 国产永久免费 | 波多野结衣亚洲一区二区 | 毛片区 | 蜜臀久久99精品久久久无需会员 | 超碰电影在线观看 | 97理论片 | 欧美精品在线观看 | 91麻豆精品国产91久久久更新时间 | 天天干天天操av | 五月天久久婷 | 国产色中涩 | 亚洲精品国产自产拍在线观看 | 一级片黄色片网站 | 免费网址你懂的 | www.xxx.性狂虐| 久操视频在线 | 500部大龄熟乱视频使用方法 | 欧美黄色成人 | 国产麻豆成人传媒免费观看 | 丁香六月婷婷综合 | 国产精品美女在线观看 | 午夜在线免费观看视频 | 99国产在线 | 国产精品久久99综合免费观看尤物 | 日韩美女免费线视频 | 久久久www成人免费毛片麻豆 | 黄色小说在线观看视频 | 97超视频免费观看 | 精品福利网站 | 色婷婷激情五月 | 不卡电影免费在线播放一区 | 天天撸夜夜操 | 欧美精品一区二区性色 | 视频一区二区在线 | 婷婷丁香色综合狠狠色 | 成人黄色大片 | 国产精品日韩精品 | 97狠狠操 | 欧美日韩国产在线观看 | 久久久久久久99精品免费观看 | 玖玖视频精品 | 在线观看免费视频 | 成人全视频免费观看在线看 | 婷婷在线观看视频 | 久久五月激情 | 99精品免费久久久久久久久日本 | 日狠狠| 久久精品视频3 | 97成人资源站 | 天天舔天天射天天操 | 亚洲理论视频 | 九九久久免费视频 | 中文字幕专区高清在线观看 | 成人黄色资源 | 成人欧美一区二区三区黑人麻豆 | 在线观看麻豆av | 婷婷四房综合激情五月 | 久草在线免费资源站 | 天天综合入口 | 国产色女人 | 国产精品久久久久aaaa | 中文字幕在线免费观看视频 | 日韩久久午夜一级啪啪 | av中文字幕亚洲 | 久久这里只有精品久久 | 91视频大全| 欧美国产日韩一区二区 | 日日夜夜天天 | 国产成人三级 | 久久久五月婷婷 | 国产成人精品一区二区三区在线观看 | 亚洲一区二区三区四区在线视频 | 在线观看的a站 | av在线影片 | 婷五月天激情 | 久久久午夜精品福利内容 | 免费一区在线 | 成年人在线免费看片 | 久久综合久久综合九色 | 亚洲精品午夜国产va久久成人 | 91九色在线视频观看 | 波多野结衣最新 | 尤物97国产精品久久精品国产 | 欧美日韩中文国产一区发布 | 国产精品国产三级国产 | av免费观看网站 | 成人av一区二区在线观看 | www黄色av| 午夜性盈盈 | 精品国产乱码久久久久久浪潮 | 欧美精品三级 | 国产免费一区二区三区网站免费 | 在线免费试看 | 亚洲国内精品视频 | 免费人做人爱www的视 | a精品视频 | 99久久综合国产精品二区 | 探花视频免费观看高清视频 | 奇米影视8888在线观看大全免费 | 久草精品免费 | 欧美成人区 | 婷婷电影在线观看 | 三级在线国产 | 十八岁以下禁止观看的1000个网站 | 亚洲综合网站在线观看 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 高清av网站 | 天天色天天射天天干 | 久久久精品免费看 | 天天操夜夜看 | 日韩免费电影网 | www.夜夜干.com| 国产成人精品一区二区三区免费 | 国产精品久久电影观看 | www99久久| 欧美日韩性视频在线 | 欧美精品在线观看免费 | 深爱婷婷久久综合 | 国产一级一级国产 | 97在线精品国自产拍中文 | 成人午夜电影在线播放 | 婷婷激情综合 | 国产在线欧美在线 | 国产精品久久网站 | 成av人电影| 国产1区2| www.人人草| 波多野结依在线观看 | 亚洲激情在线观看 | 亚洲国产免费看 | 午夜影院在线观看18 | av手机版| 亚洲人成人在线 | 免费三及片 | 在线国产不卡 | 热久久视久久精品18亚洲精品 | 国产精品自产拍在线观看网站 | 欧美精品九九99久久 | 999视频在线播放 | 999视频网| 国产不卡在线 | 最新av免费在线 | 久久看片网站 | 六月丁香综合网 | 久久国产乱 | 欧美日韩国产精品一区 | bayu135国产精品视频 | 狠狠狠色狠狠色综合 | 99热这里只有精品在线观看 | 亚洲国产69 | 婷婷丁香色综合狠狠色 | 不卡的一区二区三区 | 成人免费xxxxxx视频 | 久草精品视频在线播放 | 手机在线看片日韩 | 亚洲伊人色 | 日本韩国精品一区二区在线观看 | 免费观看黄色12片一级视频 | 亚洲视频资源在线 | 在线观看亚洲精品视频 | 日韩欧美视频一区二区 | 国产午夜三级一区二区三 | 午夜婷婷网 | 夜夜嗨av色一区二区不卡 | 日韩免费观看av | 天堂在线视频中文网 | 日日夜夜网 | 欧美日本一区 | 欧美精品网站 | 天天·日日日干 | 久草在线免费播放 | 日韩午夜三级 | 日日干综合 | 99久久久久免费精品国产 | 久久99国产精品免费网站 | 成人免费在线看片 | 伊人资源站 | 综合久久2023 | 最近最新中文字幕视频 | 亚洲国产精品久久久久久 | 亚洲黄色在线看 | 日本午夜在线观看 | 在线观看精品国产 | 久久久久久久久久影院 | 国内外成人在线 | 国产一区二区在线观看免费 | www在线免费观看 | 三日本三级少妇三级99 | 久久精品艹| 福利av影院 | 久久精品国产第一区二区三区 | 国产美女久久久 | 特级黄录像视频 | 精品久久福利 | 亚洲人片在线观看 | 夜夜夜精品| 久久成人久久 | 麻花豆传媒mv在线观看网站 | 欧美日韩国产综合网 | 日本电影黄色 | 在线国产一区二区三区 | 91爱看片| 色播激情五月 | 亚洲精品视频在 | 亚洲精品乱码久久久久久久久久 | 亚洲精品乱码久久久久久按摩 | 在线电影av | 亚洲免费专区 | 国产精品日韩在线观看 | 色婷婷成人 | 亚洲精品久久久久中文字幕二区 | 黄色毛片网站在线观看 | 欧美精品v国产精品 | 国产97视频 | 2024国产精品视频 | 九九免费在线观看 | 日日天天av | 久久久久中文 | 中文字幕第一页在线视频 | 日韩视频在线不卡 | 人人搞人人爽 | 亚洲国产成人精品电影在线观看 | 免费三级av | 香蕉在线观看视频 | 2021久久 | 欧美久久久久久久久久 | 亚洲一级性| 久草在线视频新 | 久草视频免费在线播放 | 9在线观看免费高清完整版 玖玖爱免费视频 | 日本在线视频一区二区三区 | 国产电影黄色av | 六月色丁| 久久人人97超碰国产公开结果 | 国产黄a三级三级 | 国产一区二区三区免费观看视频 | 成人毛片网 | 特级毛片在线 | 成人在线观看网址 | 99免费观看视频 | 黄色毛片视频免费观看中文 | 国产一区二区视频在线 | 久久99精品久久久久久久久久久久 | 99视频久久 | 国产91精品看黄网站 | 国产午夜在线观看视频 | 国内外激情视频 | 国产精品福利久久久 | 开心激情久久 | 亚洲天天综合网 | 国产黄免费在线观看 | 国产午夜精品福利视频 | 美女视频黄是免费的 | 成人毛片在线观看 | 男女视频久久久 | 夜夜视频欧洲 | 福利视频第一页 | 国内精品久久久久影院男同志 | 久久久久成人精品亚洲国产 | 午夜狠狠干 | 久久视频这里只有精品 | 国产91成人在在线播放 | 成人一级电影在线观看 | www欧美xxxx | 69国产精品成人在线播放 | 成人h视频在线播放 | 成人在线免费观看视视频 | 亚洲男男gaygay无套 | 亚洲精品视频在线观看免费视频 | 国产精品av一区二区 | 国产精品视频永久免费播放 | 日韩无在线 | 激情黄色一级片 | 日韩免费观看一区二区三区 | 中文字幕中文字幕在线中文字幕三区 | 欧美日韩亚洲在线观看 | 91精品国产高清自在线观看 | 在线观看日韩精品视频 | 美女网站在线看 | 深夜免费福利 | 丁香花在线视频观看免费 | 插插插色综合 | 天天色天天操天天爽 | 91精品999| 久久不射影院 | 超碰人人草| 婷婷午夜| 中文字幕91| 91精品久久久久久久久久入口 | 日韩成人在线一区二区 | 一区二区不卡高清 | 麻豆视传媒官网免费观看 | 人人草在线视频 | 国产在线观看你懂得 | 香蕉视频亚洲 | 97精品国产aⅴ| 国产成人精品在线 | 日韩激情影院 | 国产视频中文字幕 | 国产色婷婷在线 | 日韩高清在线一区二区 | 激情在线网站 | 国产成人1区 | 成人午夜电影网站 | 国产精品久久久久久久久久久久午夜片 | 久久久午夜精品理论片中文字幕 | 最近中文字幕视频完整版 | 最新精品视频在线 | 国产美女在线观看 | 五月天激情在线 | 精品久久91 | 久久久免费看片 | 国产免费一区二区三区最新6 | 特级毛片在线 | 五月婷婷激情 | 国产18精品乱码免费看 | 在线免费高清一区二区三区 | 久久精品三 | 午夜免费福利视频 | 精品网站999www| 最近中文字幕完整视频高清1 | 国产一级不卡视频 | 欧美一区成人 | 欧美一级片免费在线观看 | 麻豆影视网站 | 日本三级吹潮在线 | 日韩欧美99 | 日韩a在线 | 国产精品永久免费视频 | 久久精品国产美女 | 人人干人人艹 | 国产成人99av超碰超爽 | 91欧美日韩国产 | 高清精品久久 | 亚洲精品美女在线观看播放 | 黄www在线观看 | 丁香网五月天 | 97成人资源 | 五月激情亚洲 | 97激情影院| 国产区欧美 | 精品美女在线观看 | 日本中出在线观看 | 五月婷婷在线视频 | 波多野结衣视频在线 | 视频在线观看一区 | 国产亚洲精品久久久久久无几年桃 | 亚洲美女在线一区 | 一区二区视频在线播放 | 国内久久精品 | 美女亚洲精品 | 夜色资源网 | 国产亚洲精品久 | 亚洲激情五月 | 久久久国产视频 | 日韩av进入 | 日本精品视频免费观看 | 免费看国产视频 | av不卡免费在线观看 | 天天做日日做天天爽视频免费 | 国产高清一区二区 | av在线专区 | 免费国产一区二区视频 | 97福利视频 | 午夜视频播放 | 亚洲涩综合 | 在线午夜 | 五月激情站 | 久久久 精品| 国产人成看黄久久久久久久久 | 国产精品专区在线观看 | 国产1区在线 | 久久免费大片 | 又粗又长又大又爽又黄少妇毛片 | 激情久久影院 | 国产免费一区二区三区最新6 | 久久免费黄色 | 天天看天天操 | 亚洲一区欧美精品 | 91人人澡人人爽 | 三级a毛片 | a一片一级| 中文字幕人成人 | www日韩视频 | 精品在线99| 日韩区欠美精品av视频 | 4438全国亚洲精品观看视频 | 久免费| 麻豆91在线播放 | 久久久久久国产一区二区三区 | 91成人免费在线视频 | 人人艹人人 | 国产精品视频永久免费播放 | 麻豆成人在线观看 | 久久精品视频网站 | 成人免费亚洲 | 久久成人国产精品免费软件 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 奇米影视999 | 国产精品99久久久久 | 日本系列中文字幕 | 最近的中文字幕大全免费版 | 日韩av在线免费播放 | 97成人免费视频 | 五月开心色 | 欧美精品久 | 国产视频日韩视频欧美视频 | 欧美国产亚洲精品久久久8v | 狠狠色丁香婷综合久久 | 亚洲精品短视频 | 亚洲电影黄色 | 又湿又紧又大又爽a视频国产 | 久热色超碰 | 久久综合中文字幕 | 在线观看精品视频 | 久免费视频 | 天天操天天能 | 一区二区三区久久精品 | 狠狠操狠狠插 | 超碰激情在线 | 日本在线观看中文字幕无线观看 | av超碰在线 | 黄p在线播放 | 亚洲精品国产精品国产 | 国产中文自拍 | 亚欧日韩av| 日本在线观看视频一区 | 天天av天天 | 成人小视频在线免费观看 | 不卡av在线免费观看 | www.大网伊人 | 久草在线视频资源 | 国内精品视频在线播放 | 日韩黄色网络 | 操操操人人 | 亚洲精品免费在线 | 久久久久女人精品毛片 | 欧美精品在线一区 | 91精品国产一区二区三区 | 久久五月天色综合 | 96精品视频| 欧美激情综合五月色丁香小说 | 国产日韩欧美在线观看视频 | 成人av一区二区兰花在线播放 | 亚洲激情综合网 | 香蕉视频国产在线 | 一区二区三区在线观看免费视频 | 人人插人人玩 | 热久久国产 | 狠狠干婷婷 | 成人av网站在线观看 | 亚洲精品国偷拍自产在线观看蜜桃 | 国产日韩一区在线 | 五月香婷| 欧美日韩高清国产 | 日日操日日插 | 日日草天天干 | 欧美日韩在线视频免费 | 欧美日韩亚洲在线观看 | 99久久久国产免费 | 国产精品视频观看 | 久草在线观看视频免费 | 亚洲成a人片在线观看网站口工 | 久久精品99精品国产香蕉 | 久久久精品国产一区二区三区 | 人人爽久久久噜噜噜电影 | 18av在线视频 | 欧美性做爰猛烈叫床潮 | 婷婷亚洲最大 | 97超碰资源 | 中国一级片在线 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 探花视频在线观看+在线播放 | 五月天久久狠狠 | 久二影院 | 亚洲精品理论 | 日本成人a| 狠狠色丁香婷婷综合久小说久 | 国产一二三精品 | 最近2019年日本中文免费字幕 | av 一区 二区 久久 | 日韩99热 | 在线а√天堂中文官网 | 天天鲁一鲁摸一摸爽一爽 | 久久无码精品一区二区三区 | 日夜夜精品视频 | 日韩一区二区三区免费视频 | 免费a v在线 | 开心激情婷婷 | 国产精品白浆视频 | 免费视频一区二区 | 中文字幕色在线视频 | 国产人成在线视频 | 国产va饥渴难耐女保洁员在线观看 | 69成人在线 | 国产美女永久免费 | 国产成人亚洲精品自产在线 | 亚洲视频久久 | 亚洲在线成人精品 | 8090yy亚洲精品久久 | 国产精品久久久久亚洲影视 | 黄色成年片 | 中文字幕亚洲精品在线观看 | 久久精品直播 | 久草在线免费资源站 | 久久久夜色 | 国产对白av | 97碰在线视频 | 久久久国产成人 | 91九色精品女同系列 | 欧美一级性视频 | 国产无套精品久久久久久 | 精品久久久久久久久中文字幕 | 精品五月天 | 69国产成人综合久久精品欧美 | av网站在线免费观看 | 久久久免费看视频 | 亚洲精品国产精品乱码在线观看 | 日日草天天干 | 国产成人a v电影 | 在线导航福利 | 精品福利在线视频 | 久久成人国产精品 | 一级黄色片在线免费观看 | 九九久久免费 | 人人揉人人揉人人揉人人揉97 | 精品久久久久久久久久久久久久久久久久 | 日本精品久久久久久 | 日批视频在线观看免费 | 丁香激情综合久久伊人久久 | 国产黄在线播放 | 久久精品官网 | 91av在线视频免费观看 | 国产精品女同一区二区三区久久夜 | 欧美成人精品三级在线观看播放 | 免费a现在观看 | 国产精品精品久久久久久 | 黄色一级动作片 | 成人a视频在线观看 | 成人一区在线观看 | 亚洲免费小视频 | 欧美日韩不卡在线视频 | 婷婷六月综合亚洲 | 午夜精品导航 | 超碰在线91| 一级欧美一级日韩 | 日韩手机在线 | 久草视频观看 | 草久久久 | 国产黑丝袜在线 | 婷婷视频导航 | 91麻豆精品国产91久久久无限制版 | 国产精品一区二区在线播放 | 国产精品网红直播 | 中文字幕 在线看 | 日韩成人黄色 | 五月天丁香综合 | 国产aaa毛片| 六月丁香久久 | 日韩精品一区二区三区免费视频观看 | 午夜影院先 | 91久久丝袜国产露脸动漫 | 国产丝袜制服在线 | 久草久草视频 | 久久久精品国产一区二区电影四季 | 在线综合色 | 在线成人短视频 | 精品一区二区综合 | 成人黄色毛片 | 亚洲一区网 | 久久久亚洲精品 | 天天伊人狠狠 | a级成人毛片 | 一区二区三区视频在线 | 探花视频免费观看高清视频 | 81国产精品久久久久久久久久 | 免费在线观看污 | 欧美精品视 | 日韩三级视频在线看 | 国产在线不卡一区 | 国产精品亚洲片在线播放 | 三级黄免费看 | 亚洲欧美视频网站 | 国产在线 一区二区三区 | 国产高清绿奴videos | 国产精品手机看片 | 国产在线va| 久久九九久久九九 | 国产精品久久久久久久7电影 | 国产麻豆精品一区二区 | 久草网在线视频 | 亚洲黄色免费 | 91麻豆操 | 五月天激情视频 | 国产色就色 | 天天天天色综合 | 亚洲视频电影在线 | 久久久久久久久毛片 | 中文字幕观看视频 | 国产资源免费 | 国产精品99久久久久的智能播放 | 三上悠亚一区二区在线观看 | 久草在线观 | 久久精品国产久精国产 | 亚洲男人天堂a | 成人欧美一区二区三区在线观看 | .国产精品成人自产拍在线观看6 | 中文字幕在线观看免费高清完整版 | 免费在线一区二区 | 国产三级国产精品国产专区50 | 天天干天天色2020 | 摸bbb搡bbb搡bbbb | 欧美精品被 | 日韩av看片 | 久产久精国产品 | 四虎成人免费影院 | 免费视频你懂的 | 玖玖在线资源 | 国产高清日韩欧美 | 激情综合网天天干 | 97视频一区 | 午夜在线免费观看视频 | 国产视频美女 | 黄色特一级片 | bbbbb女女女女女bbbbb国产 | 91中文在线视频 | 天天躁天天狠天天透 | 在线免费观看视频一区二区三区 | 国产精品久久久久一区二区国产 | 国产精品欧美一区二区三区不卡 | 国产麻豆剧果冻传媒视频播放量 | 久久国产二区 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 天天干天天色2020 | 九九热在线免费观看 | 成人在线视频观看 | 亚洲一区二区高潮无套美女 | 国产一线二线三线在线观看 | 色偷偷88888欧美精品久久 | 手机av在线不卡 | 国产精品久久久久久久久久尿 | 久久成人亚洲欧美电影 | 天天操天操 | www.久久婷婷 | 久久久久国产精品一区二区 | 97精品在线视频 | 伊人久久精品久久亚洲一区 | 99精品观看 | 一级免费黄色 | 91精品国产自产在线观看永久 | 成年人免费看片 | 欧美二区三区91 | 色综久久 | 中文字幕日韩av | 中文av资源站 | 九九九免费视频 | 久草在线视频首页 | 美女免费视频一区 | 日韩精品中文字幕在线观看 | 天天拍天天操 | 国产视频手机在线 | 色国产精品一区在线观看 | 欧美精品一二 | 欧美日韩免费在线视频 | 美女网站视频免费黄 | 亚洲国产一区二区精品专区 | 久久亚洲婷婷 | 91九色视频导航 | 精品夜夜嗨av一区二区三区 | 国产午夜三级一区二区三 | 国产精品久久久久久久99 | www激情久久 | 久久九九影视 | 国产美女久久 | 97在线免费视频 | aa一级片| 国产一区二区在线免费播放 | 四虎影视成人永久免费观看亚洲欧美 | 国产一区免费 | 亚洲黄色激情小说 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 日本福利视频在线 | 久久综合婷婷国产二区高清 | 精品国产日本 | 午夜精品久久久久久久久久久久 | 欧美精品一区二区性色 | 久久久精品二区 | 中文字幕xxxx | 日韩电影在线看 | 国产精品视频你懂的 | 久久精品国产成人 | 一区二区三区久久 | 久草成人在线 | 欧美一区二区在线看 | 91黄色在线视频 | 天天艹天天干天天 | 伊人五月天综合 | 青青河边草观看完整版高清 | 午夜精品福利一区二区 | 日韩免费在线观看视频 | 91豆麻精品91久久久久久 | av资源免费在线观看 | 国产精品麻豆欧美日韩ww | 精品久久一二三区 | 在线观看日韩精品视频 | 国产精品v欧美精品 | 国产精品第一页在线观看 | 黄色小说在线免费观看 | 激情视频网页 | 久久一区国产 | 国产成人99av超碰超爽 | 狠狠网站| 黄色综合 | 在线观看免费 | 99re中文字幕 | 五月天精品视频 | 亚洲日本韩国一区二区 | 2023天天干| 国产精品高潮在线观看 | 在线成人欧美 | 九九视频免费在线观看 | 国产麻豆视频在线观看 | 国产黄影院色大全免费 | 久久99免费观看 | 精品国产电影 |