成人sese/国产免费人成视频在线观看/九色 在线/免费观看又色又爽又黄的/啪在线视频/日日做日日摸夜夜爽

首頁(yè) 新聞 > 科技 > 正文

51單片機(jī)匯編基礎(chǔ)

一個(gè)單片機(jī)所需執(zhí)行指令的集合即為單片機(jī)的指令系統(tǒng)。單片機(jī)使用的機(jī)器語(yǔ)言、匯編語(yǔ)言及高級(jí)語(yǔ)言,但不管使用是何種語(yǔ)言,最終還是要“翻譯”成為機(jī)器碼,單片機(jī)才能執(zhí)行之。現(xiàn)在有很多半導(dǎo)體廠商都推出了自己的單片機(jī),單片機(jī)種類(lèi)繁多,品種數(shù)不勝數(shù),值得注意的是不同的單片機(jī)它們的指令系統(tǒng)不一定相同,或不完全相同。但不管是使用機(jī)器語(yǔ)言、匯編語(yǔ)言還是高級(jí)語(yǔ)言都是使用指令編寫(xiě)程序的。

所謂機(jī)器語(yǔ)言即指令的二進(jìn)制編碼,而匯編語(yǔ)言則是指令的表示符號(hào) 。在指令的表達(dá)式上也不會(huì)直接使用二進(jìn)制機(jī)器碼,最常用的是十六進(jìn)制的形式。但單片機(jī)并不能直接執(zhí)行匯編語(yǔ)言和高級(jí)語(yǔ)言,都必須通過(guò)匯編器“翻譯”成為二進(jìn)制機(jī)器碼方能執(zhí)行,但如果直接使用二進(jìn)制來(lái)編寫(xiě)程序,那將十分不便,也很難記憶和識(shí)別,不易編寫(xiě)、難于辨讀,極易出錯(cuò),同時(shí)出錯(cuò)了也相當(dāng)難查找。所以現(xiàn)在基本上都不會(huì)直接使用機(jī)器語(yǔ)言來(lái)編寫(xiě)單片機(jī)的程序。最好的辦法就是使用易于閱讀和辨認(rèn)的指令符號(hào)來(lái)代替機(jī)器碼,我們常稱(chēng)這些符號(hào)為助記符,用助記符的形式表示的單片機(jī)指令就是匯編語(yǔ)言,為便于記憶和閱讀,助記符號(hào)通常都使用易于理解的英文單詞和拼音字母來(lái)表示。

每種單片機(jī)都有自己獨(dú)特的指令系統(tǒng),那么指令系統(tǒng)是開(kāi)發(fā)和生產(chǎn)廠商定義的,如要使用其單片機(jī),用戶(hù)就必須理解和遵循這些指令標(biāo)準(zhǔn),要掌握某種(類(lèi))單片機(jī),指令系統(tǒng)的學(xué)習(xí)是必須的。

MCS-51共有111條指令,可分為5類(lèi):

[1].數(shù)據(jù)傳送類(lèi)指令(共29條)

[2].算數(shù)運(yùn)算類(lèi)指令(共24條)

[3].邏輯運(yùn)算及移位類(lèi)指令(共24條)

[4].控制轉(zhuǎn)移類(lèi)指令(共17條)

[5].布爾變量操作類(lèi)指令(共17條)

一些特殊符號(hào)的意義

在介紹指令系統(tǒng)前,我們先了解一些特殊符號(hào)的意義,這對(duì)今后程序的編寫(xiě)都是相當(dāng)有用的。

Rn——當(dāng)前選中的寄存器區(qū)的8個(gè)工作寄存器R0—R7(n=0-7)。

Ri——當(dāng)前選中的寄存器區(qū)中可作為地址寄存器的兩個(gè)寄存器R0和R1(i=0,1)

direct—內(nèi)部數(shù)據(jù)存儲(chǔ)單元的8位地址。包含0—127(255)內(nèi)部存儲(chǔ)單元地址和特殊功能寄存地址。

#data—指令中的8位常數(shù)。

#data16—指令中的16位常數(shù)。

addr16—用于LCALL和LJMP指令中的16目的地地址,目的地址的空間為64kB程序存儲(chǔ)器地址。

#addr11—用于ACALL和AJMP指令中的11目的地地址,目的地址必須放在與下條指令第一個(gè)字節(jié)同一個(gè)2kB程序存儲(chǔ)器空間之中。

rel—8位帶符號(hào)的偏移字節(jié),用于所有的條件轉(zhuǎn)移和SJMP等指令中,偏移字節(jié)對(duì)于下條指令的第一個(gè)字節(jié)開(kāi)始的-128——+127范圍內(nèi)。

@—間接寄存器尋址或基址寄存器的前綴。

/—為操作的前綴,聲明對(duì)該位操作書(shū)取反。

DPTR—數(shù)據(jù)指針。

bit—內(nèi)部RAM和特殊功能寄存器的直接尋址位。

A—累加器。

B—累加器B。用于乘法和除法指令中。

C—進(jìn)位標(biāo)志位。

(x)—某地址單元中的內(nèi)容。

((x))—由X尋址單元中的內(nèi)容。

MCS-51的尋址方式

尋址的“地址”即為操作數(shù)所在單元的地址,絕大部分指令執(zhí)行時(shí)都需要用到操作數(shù),那么到哪里去取得操作數(shù)呢?最易想到的就是告訴CPU操作數(shù)所在的地址單元,從那里可取得響應(yīng)的操作數(shù),這便是“尋址”之意。MCS-51的尋址方式很多,使用起來(lái)也相當(dāng)方便,功能也很強(qiáng)大,靈活性強(qiáng)。這便是MCS-51指令系統(tǒng)“好用”的原因之一。下面我們分別討論幾種尋址方式的原理。

[1].直接尋址

指令中操作數(shù)直接以單元地址形式出現(xiàn),例如:

MOV A,68H

這條指令的意義是把內(nèi)部RAM中的68H單元中的數(shù)據(jù)內(nèi)容傳送到累加器A中。值得注意的是直接尋址方式只能使用8位二進(jìn)制地址,因此這種尋址方式僅限于內(nèi)部RAM進(jìn)行尋址。低128位單元在指令中直接以單元地址的形式給出。對(duì)于特殊功能寄存器可以使用其直接地址進(jìn)行訪問(wèn),還可以以它們的符號(hào)形式給出,只是特殊功能寄存器只能用直接尋址方式訪問(wèn),而無(wú)其它方法。

[2].寄存器尋址

寄存器尋址對(duì)選定的8個(gè)工作寄存器R0-R7進(jìn)行操作,也就是操作數(shù)在寄存器中,因此指定了寄存器就得到了操作數(shù),寄存器尋址的指令中以寄存器的符號(hào)來(lái)表示寄存器,例如:

MOV A,R1

這條指令的意義是把所用的工作寄存器組中的R3的內(nèi)容送到累加器A中。

值得一提的是工作狀態(tài)寄存器的選擇是通過(guò)程序狀態(tài)字寄存器來(lái)控制的,在這條指令前,應(yīng)通過(guò)PSW設(shè)定當(dāng)前工作寄存器組。

[3].寄存器間接尋址

寄存器尋址方式,寄存器中存放的是操作數(shù),而寄存器間接尋址方式,寄存器中存放的則為操作數(shù)的地址,也即操作數(shù)是通過(guò)寄存器指向的地址單元得到的,這便是寄存器間接尋址名稱(chēng)的由來(lái)。

例如指令:

MOV A,@R0

這條指令的意義是R0寄存器指向地址單元中的內(nèi)容送到累加器A中。假如R0=#56H,那么是將56H單元中的數(shù)據(jù)送到累加器A中。

寄存器間接尋址方式可用于訪問(wèn)內(nèi)部RAM或外部數(shù)據(jù)存儲(chǔ)器。訪問(wèn)內(nèi)部RAM或外部數(shù)據(jù)存儲(chǔ)器的低256字節(jié)時(shí),可通過(guò)R0和R1作為間接寄存器。然而有必要指出,內(nèi)部RAM的高128字節(jié)地址與專(zhuān)用積存器的地址是重疊的,所以這種尋址方式不能用于訪問(wèn)特殊功能寄存器。

外部數(shù)據(jù)存儲(chǔ)器的空間為64kB,這時(shí)可采用DPTR作為間址寄存器進(jìn)行訪問(wèn),指令如下:

MOVX A,@DPTR

這條指令的意義是與上述類(lèi)似,不再贅述。

[4].立即尋址

立即尋址就是把操作數(shù)直接在指令中給出,即操作數(shù)包含在指令中,指令操作碼的后面緊跟著操作數(shù),一般把指令中的操作數(shù)稱(chēng)為立即數(shù),因此而得名。為了與直接尋址方式相區(qū)別,在立即數(shù)前加上“#”符號(hào),例如:

MOVX A,#0EH

這條指令的意義是將0EH這個(gè)操作數(shù)送到累加器A中。

[5].變址尋址

變址尋址是以DPTR或PC作為基址寄存器,以累加器A作為變址寄存器,將兩寄存器的內(nèi)容相加形成16位地址形成操作數(shù)的實(shí)際地址。例如:

MOV A,@A+DPTR

MOVX A,@A+PC

JMP @A+DPTR

在這三條指令中,A作為偏移量寄存器,DPTR或PC作為變址寄存器,A作為無(wú)符號(hào)數(shù)與DPTR或PC的內(nèi)容相加,得到訪問(wèn)的實(shí)際地址。其中前兩條是程序存儲(chǔ)器讀指令,后一條是無(wú)條件轉(zhuǎn)移指令。

[6].位尋址

在MCS-51單片機(jī)中,RAM中的20H—2FH字節(jié)單元對(duì)應(yīng)的位地址為00H—7FH,特殊功能寄存器中的某些位也可進(jìn)行為尋址,這些單元既可以采用字節(jié)方式訪問(wèn)它們,也可采用位尋址的方式訪問(wèn)它們。

[7].相對(duì)尋址

相對(duì)尋址方式是為了程序的相對(duì)轉(zhuǎn)移而設(shè)計(jì)的,其夜里是以PC的內(nèi)容為基址,加上給出的偏移量作為轉(zhuǎn)移地址,從而實(shí)現(xiàn)程序的轉(zhuǎn)移。轉(zhuǎn)移的目的地址可參見(jiàn)如下表達(dá)式:

目的地址=轉(zhuǎn)移指令地址+轉(zhuǎn)移指令字接數(shù)+偏移量

值得注意的是,偏移量是有正負(fù)號(hào)之分的,偏移量的取值范圍是當(dāng)前PC值的-128—+127之間。

MCS-51數(shù)據(jù)傳送指令

數(shù)據(jù)傳送指令共有29條,數(shù)據(jù)傳送指令一般的操作是把源操作數(shù)傳送到目的操作數(shù),指令執(zhí)行完成后,源操作數(shù)不變,目的操作數(shù)等于源操作數(shù)。如果要求在進(jìn)行數(shù)據(jù)傳送時(shí),目的操作數(shù)不丟失,則不能用直接傳送指令,而采用交換型的數(shù)據(jù)傳送指令,數(shù)據(jù)傳送指令不影響標(biāo)志C,AC和OV,但可能會(huì)對(duì)奇偶標(biāo)志P有影響。

[1]. 以累加器A為目的操作數(shù)類(lèi)指令(4條)

這4條指令的作用是把源操作數(shù)指向的內(nèi)容送到累加器A。有直接、立即數(shù)、寄存器和寄存器間接尋址方式:

MOV A,data ;(data)→(A) 直接單元地址中的內(nèi)容送到累加器A

MOV A,#data ;#data→(A) 立即數(shù)送到累加器A中

MOV A,Rn ;(Rn)→(A) Rn中的內(nèi)容送到累加器A中

MOV A,@Ri ;((Ri))→(A) Ri內(nèi)容指向的地址單元中的內(nèi)容送到累加器A

[2]. 以寄存器Rn為目的操作數(shù)的指令(3條)

這3條指令的功能是把源操作數(shù)指定的內(nèi)容送到所選定的工作寄存器Rn中。有直接、立即和寄存器尋址方式:

MOV Rn,data ;(data)→(Rn) 直接尋址單元中的內(nèi)容送到寄存器Rn中

MOV Rn,#data ;#data→(Rn) 立即數(shù)直接送到寄存器Rn中

MOV Rn,A ;(A)→(Rn) 累加器A中的內(nèi)容送到寄存器Rn中

[3]. 以直接地址為目的操作數(shù)的指令(5條)

這組指令的功能是把源操作數(shù)指定的內(nèi)容送到由直接地址data所選定的片內(nèi)RAM中。有直接、立即、寄存器和寄存器間接4種尋址方式:

MOV data,data ;(data)→(data) 直接地址單元中的內(nèi)容送到直接地址單元

MOV data,#data ;#data→(data) 立即數(shù)送到直接地址單元

MOV data,A ;(A)→(data) 累加器A中的內(nèi)容送到直接地址單元

MOV data,Rn ;(Rn)→(data) 寄存器Rn中的內(nèi)容送到直接地址單元

MOV data,@Ri ;((Ri))→(data) 寄存器Ri中的內(nèi)容指定的地址單元中數(shù)據(jù)送到直接地址單元

[4]. 以間接地址為目的操作數(shù)的指令(3條)

這組指令的功能是把源操作數(shù)指定的內(nèi)容送到以Ri中的內(nèi)容為地址的片內(nèi)RAM中。有直接、立即和寄存器3種尋址方式:

MOV @Ri,data ;(data)→((Ri)) 直接地址單元中的內(nèi)容送到以Ri中的內(nèi)容為地址的RAM單元

MOV @Ri,#data ;#data→((Ri)) 立即數(shù)送到以Ri中的內(nèi)容為地址的RAM單元

MOV @Ri,A ;(A)→((Ri)) 累加器A中的內(nèi)容送到以Ri中的內(nèi)容為地址的RAM單元

[5]. 查表指令(2條)

這組指令的功能是對(duì)存放于程序存儲(chǔ)器中的數(shù)據(jù)表格進(jìn)行查找傳送,使用變址尋址方式:

MOVC A,@A+DPTR ;((A))+(DPTR)→(A) 表格地址單元中的內(nèi)容送到累加器A中

MOVC A,@A+PC ;((PC))+1→(A),((A))+(PC)→(A) 表格地址單元中的內(nèi)容送到累加器A中

[6]. 累加器A與片外數(shù)據(jù)存儲(chǔ)器RAM傳送指令(4條)

這4條指令的作用是累加器A與片外RAM間的數(shù)據(jù)傳送。使用寄存器尋址方式:

MOVX @DPTR,A ;(A)→((DPTR)) 累加器中的內(nèi)容送到數(shù)據(jù)指針指向片外RAM地址中

MOVX A, @DPTR ;((DPTR))→(A) 數(shù)據(jù)指針指向片外RAM地址中的內(nèi)容送到累加器A中

MOVX A, @Ri ;((Ri))→(A) 寄存器Ri指向片外RAM地址中的內(nèi)容送到累加器A中

MOVX @Ri,A ;(A)→((Ri)) 累加器中的內(nèi)容送到寄存器Ri指向片外RAM地址中

[7]. 堆棧操作類(lèi)指令(2條)

這4類(lèi)指令的作用是把直接尋址單元的內(nèi)容傳送到堆棧指針SP所指的單元中,以及把SP所指單元的內(nèi)容送到直接尋址單元中。這類(lèi)指令只有兩條,下述的第一條常稱(chēng)為入棧操作指令,第二條稱(chēng)為出棧操作指令。需要指出的是,單片機(jī)開(kāi)機(jī)復(fù)位后,(SP)默認(rèn)為07H,但一般都需要重新賦值,設(shè)置新的SP首址。入棧的第一個(gè)數(shù)據(jù)必須存放于SP+1所指存儲(chǔ)單元,故實(shí)際的堆棧底為SP+1所指的存儲(chǔ)單元。

PUSH data ;(SP)+1→(SP),(data)→(SP) 堆棧指針首先加1,直接尋址單元中的數(shù)據(jù)送到堆棧指針SP所指的單元中

POP data ;(SP)→(data)(SP)-1→(SP), 堆棧指針SP所指的單元數(shù)據(jù)送到直接尋址單元中,堆棧指針SP再進(jìn)行減1操作

[8]. 交換指令(5條)

這5條指令的功能是把累加器A中的內(nèi)容與源操作數(shù)所指的數(shù)據(jù)相互交換。

XCH A,Rn ;(A)←→(Rn)累加器與工作寄存器Rn中的內(nèi)容互換

XCH A,@Ri ;(A)←→((Ri))累加器與工作寄存器Ri所指的存儲(chǔ)單元中的內(nèi)容互換

XCH A,data ;(A)←→(data)累加器與直接地址單元中的內(nèi)容互換

XCHD A,@Ri ;(A3-0)←→((Ri)3-0)累加器與工作寄存器Ri所指的存儲(chǔ)單元中的內(nèi)容低半字節(jié)互換

SWAP A ;(A3-0)←→(A7-4)累加器中的內(nèi)容高低半字節(jié)互換

[9]. 16位數(shù)據(jù)傳送指令(1條)

這條指令的功能是把16位常數(shù)送入數(shù)據(jù)指針寄存器。

MOV DPTR,#data16 ;#dataH→(DPH),#dataL→(DPL)16位常數(shù)的高8位送到DPH,低8位送到DPL

MCS-51算術(shù)運(yùn)算指令

算術(shù)運(yùn)算指令共有24條,算術(shù)運(yùn)算主要是執(zhí)行加、減、乘、除法四則運(yùn)算。另外MCS-51指令系統(tǒng)中有相當(dāng)一部分是進(jìn)行加、減1操作,BCD碼的運(yùn)算和調(diào)整,我們都?xì)w類(lèi)為運(yùn)算指令。雖然MCS-51單片機(jī)的算術(shù)邏輯單元ALU僅能對(duì)8位無(wú)符號(hào)整數(shù)進(jìn)行運(yùn)算,但利用進(jìn)位標(biāo)志C,則可進(jìn)行多字節(jié)無(wú)符號(hào)整數(shù)的運(yùn)算。同時(shí)利用溢出標(biāo)志,還可以對(duì)帶符號(hào)數(shù)進(jìn)行補(bǔ)碼運(yùn)算。需要指出的是,除加、減1指令外,這類(lèi)指令大多數(shù)都會(huì)對(duì)PSW(程序狀態(tài)字)有影響。這在使用中應(yīng)特別注意。

[1]. 加法指令(4條)

這4條指令的作用是把立即數(shù),直接地址、工作寄存器及間接地址內(nèi)容與累加器A的內(nèi)容相加,運(yùn)算結(jié)果存在A中。

ADD A,#data ;(A)+#data→(A) 累加器A中的內(nèi)容與立即數(shù)#data相加,結(jié)果存在A中

ADD A,data ;(A)+(data)→(A) 累加器A中的內(nèi)容與直接地址單元中的內(nèi)容相加,結(jié)果存在A中

ADD A,Rn ;(A)+(Rn)→(A) 累加器A中的內(nèi)容與工作寄存器Rn中的內(nèi)容相加,結(jié)果存在A中

ADD A,@Ri ;(A)+((Ri))→(A) 累加器A中的內(nèi)容與工作寄存器Ri所指向地址單元中的內(nèi)容相加,結(jié)果存在A中

[2]. 帶進(jìn)位加法指令(4條)

這4條指令除與[1]功能相同外,在進(jìn)行加法運(yùn)算時(shí)還需考慮進(jìn)位問(wèn)題。

ADDC A,data ;(A)+(data)+(C)→(A) 累加器A中的內(nèi)容與直接地址單元的內(nèi)容連同進(jìn)位位相加,結(jié)果存在A中

ADDC A,#data ;(A)+#data +(C)→(A) 累加器A中的內(nèi)容與立即數(shù)連同進(jìn)位位相加,結(jié)果存在A中

ADDC A,Rn ;(A)+Rn+(C)→(A) 累加器A中的內(nèi)容與工作寄存器Rn中的內(nèi)容、連同進(jìn)位位相加,結(jié)果存在A中

ADDC A,@Ri ;(A)+((Ri))+(C)→(A) 累加器A中的內(nèi)容與工作寄存器Ri指向地址單元中的內(nèi)容、連同進(jìn)位位相加,結(jié)果存在A中

[3]. 帶借位減法指令(4條)

這組指令包含立即數(shù)、直接地址、間接地址及工作寄存器與累加器A連同借位位C內(nèi)容相減,結(jié)果送回累加器A中。

這里我們對(duì)借位位C的狀態(tài)作出說(shuō)明,在進(jìn)行減法運(yùn)算中,CY=1表示有借位,CY=0則無(wú)借位。OV=1聲明帶符號(hào)數(shù)相減時(shí),從一個(gè)正數(shù)減去一個(gè)負(fù)數(shù)結(jié)果為負(fù)數(shù),或者從一個(gè)負(fù)數(shù)中減去一個(gè)正數(shù)結(jié)果為正數(shù)的錯(cuò)誤情況。在進(jìn)行減法運(yùn)算前,如果不知道借位標(biāo)志位C的狀態(tài),則應(yīng)先對(duì)CY進(jìn)行清零操作。

SUBB A,data ;(A)-(data) - (C)→(A) 累加器A中的內(nèi)容與直接地址單元中的內(nèi)容、連同借位位相減,結(jié)果存在A中

SUBB A,#data ;(A)-#data -(C)→(A) 累加器A中的內(nèi)容與立即數(shù)、連同借位位相減,結(jié)果存在A中

SUBB A,Rn ;(A)-(Rn) -(C)→(A) 累加器A中的內(nèi)容與工作寄存器中的內(nèi)容、連同借位位相減,結(jié)果存在A中

SUBB A,@Ri ;(A)-((Ri)) -(C)→(A) 累加器A中的內(nèi)容與工作寄存器Ri指向的地址單元中的內(nèi)容、連同借位位相減,結(jié)果存在A中

[4]. 乘法指令(1條)

這個(gè)指令的作用是把累加器A和寄存器B中的8位無(wú)符號(hào)數(shù)相乘,所得到的是16位乘積,這個(gè)結(jié)果低8位存在累加器A,而高8位存在寄存器B中。如果OV=1,說(shuō)明乘積大于FFH,否則OV=0,但進(jìn)位標(biāo)志位CY總是等于0。

MUL AB ;(A)×(B)→(A)和(B) 累加器A中的內(nèi)容與寄存器B中的內(nèi)容相乘,結(jié)果存在A、B中

[5]. 除法指令(1條)

這個(gè)指令的作用是把累加器A的8位無(wú)符號(hào)整數(shù)除以寄存器B中的8位無(wú)符號(hào)整數(shù),所得到的商存在累加器A,而余數(shù)存在寄存器B中。除法運(yùn)算總是使OV和進(jìn)位標(biāo)志位CY等于0。如果OV=1,表明寄存器B中的內(nèi)容為00H,那么執(zhí)行結(jié)果為不確定值,表示除法有溢出。

DIV AB ;(A)÷(B)→(A)和(B) 累加器A中的內(nèi)容除以寄存器B中的內(nèi)容,所得到的商存在累加器A,而余數(shù)存在寄存器B中。

[6]. 加1指令(5條)

這5條指令的的功能均為原寄存器的內(nèi)容加1,結(jié)果送回原寄存器。上述提到,加1指令不會(huì)對(duì)任何標(biāo)志有影響,如果原寄存器的內(nèi)容為FFH,執(zhí)行加1后,結(jié)果就會(huì)是00H。這組指令共有直接、寄存器、寄存器減間址等尋址方式:

INC A ;(A)+1→(A) 累加器A中的內(nèi)容加1,結(jié)果存在A中

INC data ;(data)+1→(data) 直接地址單元中的內(nèi)容加1,結(jié)果送回原地址單元中

INC @Ri ;((Ri))+1→((Ri)) 寄存器的內(nèi)容指向的地址單元中的內(nèi)容加1,結(jié)果送回原地址單元中

INC Rn ;(Rn)+1→(Rn)寄存器Rn的內(nèi)容加1,結(jié)果送回原地址單元中

INC DPTR ;(DPTR)+1→(DPTR)數(shù)據(jù)指針的內(nèi)容加1,結(jié)果送回?cái)?shù)據(jù)指針中

在INC data這條指令中,如果直接地址是I/O,其功能是先讀入I/O鎖存器的內(nèi)容,然后在CPU進(jìn)行加1操作,再輸出到I/O上,這就是“讀—修改—寫(xiě)”操作。

[7]. 減1指令(4條)

這組指令的作用是把所指的寄存器內(nèi)容減1,結(jié)果送回原寄存器,若原寄存器的內(nèi)容為00H,減1后即為FFH,運(yùn)算結(jié)果不影響任何標(biāo)志位,這組指令共有直接、寄存器、寄存器間址等尋址方式,當(dāng)直接地址是I/O口鎖存器時(shí),“讀—修改—寫(xiě)”操作與加1指令類(lèi)似。

DEC A ;(A)-1→(A)累加器A中的內(nèi)容減1,結(jié)果送回累加器A中

DEC data ;(data)-1→(data)直接地址單元中的內(nèi)容減1,結(jié)果送回直接地址單元中

DEC @Ri ;((Ri))-1→((Ri))寄存器Ri指向的地址單元中的內(nèi)容減1,結(jié)果送回原地址單元中

DEC Rn ;(Rn)-1→(Rn)寄存器Rn中的內(nèi)容減1,結(jié)果送回寄存器Rn中

[8]. 十進(jìn)制調(diào)整指令(1條)

在進(jìn)行BCD碼運(yùn)算時(shí),這條指令總是跟在ADD或ADDC指令之后,其功能是將執(zhí)行加法運(yùn)算后存于累加器A中的結(jié)果進(jìn)行調(diào)整和修正。

DA A

MCS-51邏輯運(yùn)算及移位指令

邏輯運(yùn)算和移位指令共有25條,有與、或、異或、求反、左右移位、清0等邏輯操作,有直接、寄存器和寄存器間址等尋址方式。這類(lèi)指令一般不影響程序狀態(tài)字(PSW)標(biāo)志。

[1]. 循環(huán)移位指令(4條)

這4條指令的作用是將累加器中的內(nèi)容循環(huán)左或右移一位,后兩條指令是連同進(jìn)位位CY一起移位。

RL A ;累加器A中的內(nèi)容左移一位

RR A ;累加器A中的內(nèi)容右移一位

RLC A ;累加器A中的內(nèi)容連同進(jìn)位位CY左移一位

RRC A ;累加器A中的內(nèi)容連同進(jìn)位位CY右移一位

[2]. 累加器半字節(jié)交換指令(1條)

這條指令是將累加器中的內(nèi)容高低半字節(jié)互換,這在上一節(jié)中內(nèi)容已有介紹。

SWAP A ; 累加器中的內(nèi)容高低半字節(jié)互換

[3]. 求反指令(1條)

這條指令將累加器中的內(nèi)容按位取反。

CPL A ; 累加器中的內(nèi)容按位取反

[4]. 清零指令(1條)

這條指令將累加器中的內(nèi)容清0。

CLR A ; 0→(A),累加器中的內(nèi)容清0

[5]. 邏輯與操作指令(6條)

這組指令的作用是將兩個(gè)單元中的內(nèi)容執(zhí)行邏輯與操作。如果直接地址是I/O地址,則為“讀—修改—寫(xiě)”操作。

ANL A,data ;累加器A中的內(nèi)容和直接地址單元中的內(nèi)容執(zhí)行與邏輯操作。結(jié)果存在寄存器A中。

ANL data,#data ;直接地址單元中的內(nèi)容和立即數(shù)執(zhí)行與邏輯操作。結(jié)果存在直接地址單元中。

ANL A,#data ;累加器A的內(nèi)容和立即數(shù)執(zhí)行與邏輯操作。結(jié)果存在累加器A中。

ANL A,Rn ;累加器A的內(nèi)容和寄存器Rn中的內(nèi)容執(zhí)行與邏輯操作。結(jié)果存在累加器A中。

ANL data,A ;直接地址單元中的內(nèi)容和累加器A的內(nèi)容執(zhí)行與邏輯操作。結(jié)果存在直接地址單元中。

ANL A,@Ri ;累加器A的內(nèi)容和工作寄存器Ri指向的地址單元中的內(nèi)容執(zhí)行與邏輯操作。結(jié)果存在累加器A中。

[6]. 邏輯或操作指令(6條)

這組指令的作用是將兩個(gè)單元中的內(nèi)容執(zhí)行邏輯或操作。如果直接地址是I/O地址,則為“讀—修改—寫(xiě)”操作。

ORL A,data ;累加器A中的內(nèi)容和直接地址單元中的內(nèi)容執(zhí)行邏輯或操作。結(jié)果存在寄存器A中。

ORL data,#data ;直接地址單元中的內(nèi)容和立即數(shù)執(zhí)行邏輯或操作。結(jié)果存在直接地址單元中。

ORL A,#data ;累加器A的內(nèi)容和立即數(shù)執(zhí)行邏輯或操作。結(jié)果存在累加器A中。

ORL A,Rn ;累加器A的內(nèi)容和寄存器Rn中的內(nèi)容執(zhí)行邏輯或操作。結(jié)果存在累加器A中。

ORL data,A ;直接地址單元中的內(nèi)容和累加器A的內(nèi)容執(zhí)行邏輯或操作。結(jié)果存在直接地址單元中。

ORL A,@Ri ;累加器A的內(nèi)容和工作寄存器Ri指向的地址單元中的內(nèi)容執(zhí)行邏輯或操作。結(jié)果存在累加器A中。

[7]. 邏輯異或操作指令(6條)

這組指令的作用是將兩個(gè)單元中的內(nèi)容執(zhí)行邏輯異或操作。如果直接地址是I/O地址,則為“讀—修改—寫(xiě)”操作。

XRL A,data ;累加器A中的內(nèi)容和直接地址單元中的內(nèi)容執(zhí)行邏輯異或操作。結(jié)果存在寄存器A中。

XRL data,#data ;直接地址單元中的內(nèi)容和立即數(shù)執(zhí)行邏輯異或操作。結(jié)果存在直接地址單元中。

XRL A,#data ;累加器A的內(nèi)容和立即數(shù)執(zhí)行邏輯異或操作。結(jié)果存在累加器A中。

XRL A,Rn ;累加器A的內(nèi)容和寄存器Rn中的內(nèi)容執(zhí)行邏輯異或操作。結(jié)果存在累加器A中。

XRL data,A ;直接地址單元中的內(nèi)容和累加器A的內(nèi)容執(zhí)行邏輯異或操作。結(jié)果存在直接地址單元中。

XRL A,@Ri ;累加器A的內(nèi)容和工作寄存器Ri指向的地址單元中的內(nèi)容執(zhí)行邏輯異或操作。結(jié)果存在累加器A中。

MCS-51控制轉(zhuǎn)移指令

控制轉(zhuǎn)移指令用于控制程序的流向,所控制的范圍即為程序存儲(chǔ)器區(qū)間,MCS-51系列單片機(jī)的控制轉(zhuǎn)移指令相對(duì)豐富,有可對(duì)64kB程序空間地址單元進(jìn)行訪問(wèn)的長(zhǎng)調(diào)用、長(zhǎng)轉(zhuǎn)移指令,也有可對(duì)2kB字節(jié)進(jìn)行訪問(wèn)的絕對(duì)調(diào)用和絕對(duì)轉(zhuǎn)移指令,還有在一頁(yè)范圍內(nèi)短相對(duì)轉(zhuǎn)移及其它無(wú)條件轉(zhuǎn)移指令,這些指令的執(zhí)行一般都不會(huì)對(duì)標(biāo)志位有影響。

[1]. 無(wú)條件轉(zhuǎn)移指令(4條)

這組指令執(zhí)行完后,程序就會(huì)無(wú)條件轉(zhuǎn)移到指令所指向的地址上去。長(zhǎng)轉(zhuǎn)移指令訪問(wèn)的程序存儲(chǔ)器空間為16地址64kB,絕對(duì)轉(zhuǎn)移指令訪問(wèn)的程序存儲(chǔ)器空間為11位地址2kB空間。

LJMP addr16 ;addr16→(PC),給程序計(jì)數(shù)器賦予新值(16位地址)

AJMP addr11 ;(PC)+2→(PC),addr11→(PC10-0)程序計(jì)數(shù)器賦予新值(11位地址),(PC15-11)不改變

SJMP rel ;(PC)+ 2 + rel→(PC)當(dāng)前程序計(jì)數(shù)器先加上2再加上偏移量給程序計(jì)數(shù)器賦予新值

JMP @A+DPTR ;(A)+ (DPTR)→(PC),累加器所指向地址單元的值加上數(shù)據(jù)指針的值給程序計(jì)數(shù)器賦予新值

[2]. 條件轉(zhuǎn)移指令(8條)

程序可利用這組豐富的指令根據(jù)當(dāng)前的條件進(jìn)行判斷,看是否滿(mǎn)足某種特定的條件,從而控制程序的轉(zhuǎn)向。

JZ rel ; A=0,(PC)+ 2 + rel→(PC),累加器中的內(nèi)容為0,則轉(zhuǎn)移到偏移量所指向的地址,否則程序往下執(zhí)行

JNZ rel ; A≠0,(PC)+ 2 + rel→(PC),累加器中的內(nèi)容不為0,則轉(zhuǎn)移到偏移量所指向的地址,否則程序往下執(zhí)行

CJNE A, data, rel ; A≠(data),(PC)+ 3 + rel→(PC),累加器中的內(nèi)容不等于直接地址單元的內(nèi)容,則轉(zhuǎn)移到偏移量所指向的地址,否則程序往下執(zhí)行

CJNE A, #data, rel ; A≠#data,(PC)+ 3 + rel→(PC),累加器中的內(nèi)容不等于立即數(shù),則轉(zhuǎn)移到偏移量所指向的地址,否則程序往下執(zhí)行

CJNE Rn, #data, rel ; A≠#data,(PC)+ 3 + rel→(PC),工作寄存器Rn中的內(nèi)容不等于立即數(shù),則轉(zhuǎn)移到偏移量所指向的地址,否則程序往下執(zhí)行

CJNE @Ri, #data, rel ; A≠#data,(PC)+ 3 + rel→(PC),工作寄存器Ri指向地址單元中的內(nèi)容不等于立即數(shù),則轉(zhuǎn)移到偏移量所指向的地址,否則程序往下執(zhí)行

DJNZ Rn, rel ; (Rn)-1→(Rn),(Rn)≠0,(PC)+ 2 + rel→(PC)工作寄存器Rn減1不等于0,則轉(zhuǎn)移到偏移量所指向的地址,否則程序往下執(zhí)行

DJNZ data, rel ; (Rn)-1→(Rn),(Rn)≠0,(PC)+ 2 + rel→(PC)直接地址單元中的內(nèi)容減1不等于0,則轉(zhuǎn)移到偏移量所指向的地址,否則程序往下執(zhí)行

[3]. 子程序調(diào)用指令(1條)

子程序是為了便于程序編寫(xiě),減少那些需反復(fù)執(zhí)行的程序占用多余的地址空間而引入的程序分支,從而有了主程序和子程序的概念,需要反復(fù)執(zhí)行的一些程序,我們?cè)诰幊虝r(shí)一般都把它們編寫(xiě)成子程序,當(dāng)需要用它們時(shí),就用一個(gè)調(diào)用命令使程序按調(diào)用的地址去執(zhí)行,這就需要子程序的調(diào)用指令和返回指令。

LCALL addr16 ; 長(zhǎng)調(diào)用指令,可在64kB空間調(diào)用子程序。此時(shí)(PC)+ 3→(PC),(SP)+ 1→(SP),(PC7-0)→(SP),(SP)+ 1→(SP),(PC15-8)→(SP),addr16→(PC),即分別從堆棧中彈出調(diào)用子程序時(shí)壓入的返回地址

ACALL addr11 ; 絕對(duì)調(diào)用指令,可在2kB空間調(diào)用子程序,此時(shí)(PC)+ 2→(PC),(SP)+ 1→(SP),(PC7-0)→(SP),(SP)+ 1→(SP),(PC15-8)→(SP),addr11→(PC10-0)

RET ; 子程序返回指令。此時(shí)(SP)→(PC15-8),(SP)- 1→(SP),(SP)→(PC7-0),(SP)- 1→(SP)

RETI ; 中斷返回指令,除具有RET功能外,還具有恢復(fù)中斷邏輯的功能,需注意的是,RETI指令不能用RET代替

[4]. 空操作指令(1條)

這條指令將累加器中的內(nèi)容清0。

NOP ; 這條指令除了使PC加1,消耗一個(gè)機(jī)器周期外,沒(méi)有執(zhí)行任何操作??捎糜诙虝r(shí)間的延時(shí)

MCS-51布爾變量操作指令

布爾處理功能是MCS-51系列單片機(jī)的一個(gè)重要特征,這是出于實(shí)際應(yīng)用需要而設(shè)置的。布爾變量也即開(kāi)關(guān)變量,它是以位(bit)為單位進(jìn)行操作的。

在物理結(jié)構(gòu)上,MCS-51單片機(jī)有一個(gè)布爾處理機(jī),它以進(jìn)位標(biāo)志做為累加位,以?xún)?nèi)部RAM可尋址的128個(gè)為存儲(chǔ)位。

既然有布爾處理機(jī)功能,所以也就有相應(yīng)的布爾操作指令集,下面我們分別談?wù)摗?/p>

[1]. 位傳送指令(2條)

位傳送指令就是可尋址位與累加位CY之間的傳送,指令有兩條。

MOV C,bit ;bit→CY,某位數(shù)據(jù)送CY

MOV bit,C ;CY→bit,CY數(shù)據(jù)送某位

[2]. 位置位復(fù)位指令(4條)

這些指令對(duì)CY及可尋址位進(jìn)行置位或復(fù)位操作,共有四條指令。

CLR C ; 0→CY,清CY

CLR bit ; 0→bit,清某一位

SETB C ; 1→CY,置位CY

SETB bit ; 1→bit,置位某一位

[3]. 位運(yùn)算指令(6條)

位運(yùn)算都是邏輯運(yùn)算,有與、或、非三種指令,共六條。

ANL C,bit ;(CY)∧(bit)→CY

ANL C,/bit ;(CY)∧()→CY

ORL C,bit ;(CY)∨(bit)→CY

ORL C,/bit ;(CY)∧()→CY

CPL C ;()→CY

CPL bit ;()→bir

[4]. 位控制轉(zhuǎn)移指令(5)

位控制轉(zhuǎn)移指令是以位的狀態(tài)作為實(shí)現(xiàn)程序轉(zhuǎn)移的判斷條件,介紹如下:

JC rel ; (CY)=1轉(zhuǎn)移,(PC)+2+rel→PC,否則程序往下執(zhí)行,(PC)+2→PC。

JNC rel ; (CY)=0轉(zhuǎn)移,(PC)+2+rel→PC,否則程序往下執(zhí)行,(PC)+2→PC。

JB bit, rel ; 位狀態(tài)為1轉(zhuǎn)移。

JNB bit, rel ; 位狀態(tài)為0轉(zhuǎn)移。

JBC bit, rel ; 位狀態(tài)為1轉(zhuǎn)移,并使該位清“0”。

后三條指令都是三字節(jié)指令,如果條件滿(mǎn)足,(PC)+3+rel→PC,否則程序往下執(zhí)行,(PC)+3→PC。

關(guān)鍵詞: 51單片機(jī)匯編基

最近更新

關(guān)于本站 管理團(tuán)隊(duì) 版權(quán)申明 網(wǎng)站地圖 聯(lián)系合作 招聘信息

Copyright © 2005-2018 創(chuàng)投網(wǎng) - m.zhigu.net.cn All rights reserved
聯(lián)系我們:33 92 950@qq.com
豫ICP備2020035879號(hào)-12

 

主站蜘蛛池模板: 爽爽窝窝午夜精品一区二区 | 久久久久久无码午夜精品直播 | 女十八免费毛片视频 | 全部毛片永久免费看 | 精品免费国偷自产在线视频 | 久久久久久久97 | 欧美疯狂xxxxxbbbbb | 国产成人无码aⅴ片在线观看导航 | 精品一卡2卡三卡4卡免费视频 | 91艹逼视频| 亚洲欧美日韩视频高清专区 | 少妇被黑人到高潮喷出白浆 | 亚洲一级片免费看 | 国产电影无码午夜在线播放 | 少妇内射兰兰久久 | 中文字幕日韩精品无码内射 | 亚洲三级在线免费观看 | 久久精品中文字幕无码绿巨人 | 亚洲和欧洲一码二码区别7777 | 日韩欧美一区二区三区在线观看 | 羞羞网站在线看 | 麻豆xx| 久久五月丁香激情综合 | av在线亚洲欧洲日产一区二区 | 日韩一区二区三区在线观看视频 | 国产毛片毛片毛片 | av无码播放一区二区三区 | 国内乱子对白免费在限 | 欧美老熟妇乱子 | 极品少妇被猛得白浆直喷白浆小说 | 亚洲国产精品久久精品 | 国产69久久精品成人看动漫 | gav成人网免费免播放器播放 | 夜夜躁狠狠躁日日躁av麻豆 | 精品久久久久久久久中文字幕 | 女同久久精品国产99国产精品 | 农村真人裸体丰满少妇毛片 | 国模精品一区二区三区 | 久久久久久国产精品mv | 欧美夜夜骑 | a毛片网站 | 狠狠色综合网丁香五月 | 国产精品99 | 亚洲元码 | 日日操中文字幕 | 农村少妇无套内谢免费 | 毛片免费在线观看视频 | 男女猛烈无遮挡免费视频app | 日韩av一国产av一中文字慕 | 人日人视频 | 五月天六月婷婷 | 亚洲精品偷拍无码不卡av | 五月婷婷小说 | 九色国产| 久久久久久臀欲欧美日韩 | 羞羞麻豆国产精品1区2区3区 | 欧美美女网站 | 精品国偷自产国产一区 | 成人av资源网 | 主站蜘蛛池模板: 蛛词}| 日本久操| 亚洲欧美国产日韩在线观看 | 日韩亚洲欧美中文高清在线 | 少妇视频一区二区三区 | 国产成人在线综合 | 国产另类综合 | 人人干狠狠干 | 精品国产电影久久九九 | 亚洲日韩性欧美中文字幕 | 色综合av综合无码综合网站 | 91亚洲免费视频 | 男人看的网站 | 嫩草官网| 欧美成年人视频在线观看 | 军警糙汉1v1高h | 精品无人区乱码1区2区3区在线 | 业余 自由 性别 成熟视频 视频 | 激情偷乱人伦小说视频在线 | 久草青青草| 婷婷色基地 | 久久人妻无码aⅴ毛片a片app | 久久夜色精品 | 久久中文精品无码中文字幕下载 | 久久夜色精品国产 | 亚洲中文字幕成人无码 | 亚洲色欧美 | 日本久久久久久久做爰片日本 | 国产小视频在线观看网站 | 97在线国产视频 | 后入内射欧美99二区视频 | 亚洲成人在线免费 | 色婷婷国产精品久久包臀 | 一区二区三区欧美在线 | 国产av国片精品一区二区 | 在线观看aaa | 中日韩高清无专码区2021 | 在线观看无码av网址 | 欧美wwwxxx| 欧美猛交免费 | 99re热视频| 亚洲精品国产成人无码区a片 | 天堂另类网站 | 亚洲精品国产一区二区小泽玛利亚 | 动漫3d精品一区二区三区 | 色爱无码av综合区老司机非洲 | 亚洲偷自拍另类图片二区 | 亚洲男女激情 | 亚洲天堂一区 | 久久精品丝袜高跟鞋 | 91国内精品 | 欧美一区二区三区久久精品 | 久久人妻少妇嫩草av | 亚洲精品你懂的 | 黑人日b视频 | 免费大片在线观看网站 | 国产精品jizz在线观看麻豆 | 国产开嫩苞在线播放视频 | 一级做a免费看 | 日韩美女乱淫免费看视频大黄 | 主站蜘蛛池模板: 蛛词}| 国产精品青草久久久久婷婷 | 新婚少妇无套内谢国语播放 | 一区二区美女视频 | 93精品国产乱码久久久 | 91成人在线观看喷潮 | av激情亚洲男人的天堂国语 | 激情五月开心综合亚洲 | 最近中文字幕在线观看 | 性强烈的欧美三级视频 | 久久中文字幕无码一区二区 | 黄色大片一区二区三区 | 一区二区在线免费观看 | 国产又粗又猛又大爽 | 亚洲精品乱码久久久久66国产成 | 免费国产在线精品一区二区三区 | 91午夜国产| 亚洲插插| 亚洲乱码一区二区三区在线观看 | 亚洲av毛片成人精品 | 亚洲夜色噜噜av在线观看 | 日韩高清在线亚洲专区小说 | 日韩高清不卡在线 | 高清粉嫩无套内谢国语播放 | 国产佗精品一区二区三区 | 亚洲综合久久av一区二区三区 | 天天做天天爱天天做天天吃中 | 国产精品自在线拍亚洲另类 | 国产一级特黄a大片免费 | 国产在不卡免费一区二区三 | 蝌蚪自拍网 | 国产精品成人一区无码 | 偷拍区清纯另类丝袜美腿 | 亚洲阿v天堂在线2017免费 | 日本在线免费观看视频 | 中日韩精品视频 | 中文字幕av久久爽一区 | www.桃色 | 亚洲色爱免费观看视频 | 激情丁香 | 日韩xxx视频 | 精品久久一| xxx国产在线观看 | 免费无码一区二区三区蜜桃大 | 美日韩黄色大片 | 黄色国产免费 | 亚洲精品乱码久久久久久写真 | 精品久久久久久久免费人妻 | 精品国产一区二区三区久久久蜜臀 | 用舌头去添高潮无码视频 | 操网 | 亚洲欧美激情在线一区 | 亚洲精品无码久久久影院相关影片 | 岛国片在线免费观看 | sm在线看| 久久精品第一国产久精国产宅男66 | 久久精品动漫一区二区三区 | 春色校园激情综合在线 | 一级看片免费视频囗交 | 亚洲综合久久无码色噜噜 | 主站蜘蛛池模板: 蛛词}| 国产传媒一本之道 | 精品久久久久久亚洲中文字幕 | 日日夜夜天天干干 | 超碰人人人人人人 | 少妇天天爽视频在线看网站 | 免费无码一区二区三区a片 2020亚洲天堂 | 什么网站可以看毛片 | 黄色工厂这里只有精品 | 青青草av| 男男19禁啪啪无遮挡免费 | 成人精品一区日本无码网 | 人妻与老人中文字幕 | 亚洲欧美婷婷六月色综合 | 亚洲精品国产一区二区精华 | 人人爱人人射 | 青青草国产精品久久久久 | 久久亚洲日韩看片无码 | 久久国产精品嫩草影院的使用方法 | 粉嫩av淫片一区二区三区 | 91爱视频| 永久在线视频 | 韩日黄色毛片 | 一区二区波多野结衣 | 亚洲爆乳精品无码一区二区 | 无码天堂亚洲国产av麻豆 | 人妻丰满熟妇av无码片 | 亚洲国产精品自在在线观看 | 精品久久久久久中文字幕大豆网 | 久久精品国产丝袜人妻 | 亚洲精品粉嫩美女一区 | 国产第8页| 国产又粗又猛又爽又黄的视频先 | 国产美女精品自在线拍免费 | 国产高清中文字幕 | 麻婆豆传媒一区二区三 | 亚洲国产欧美在线观看片不卡 | 好吊妞人成视频在线观看强行 | 亚洲国产中文曰韩丝袜 | 亚洲а∨天堂男人色无码 | 强伦人妻一区二区三区视频18 | 亚洲视频一区二区三区四区 | 亚洲精品久久久久久下一站 | 97免费人做人爱在线看视频 | 99久久精品国产综合一区 | 亚洲国产mv| 久久久久亚洲精品无码蜜桃 | 噜噜噜网站 | 国产强被迫伦姧在线观看无码 | 日韩欧美在线观看视频网站 | 色多多在线 | 成人精品国产 | 欧美又大又硬又粗bbbbb影院 | 欧美婷婷| 亚洲国产精品无码观看久久 | av免费网址在线观看 | 少妇免费毛片久久久久久久久 | 亚洲视频欧洲视频 | se亚洲| 久久久精品91 | 主站蜘蛛池模板: 蛛词}| 国产一区二区三区视频在线观看 | 青青草原国产视频 | 91久久国产最好的精华液 | 欧洲熟妇色xxxx欧美老妇老头多毛 | 日本一道人妻无码一区在线 | 人人爽人人爽人人 | 久久999精品国产只有精品 | 午夜免费啪视频在线观看 | 久久精品久久电影免费 | 日韩少妇内射免费播放18禁裸乳 | 黑色超薄丝袜脚交爽91 | 亚洲欧洲在线观看视频 | 国产精品久久久久久久久久久不卡 | 98色花堂精品视频在线观看 | 97狠狠干 | 亚洲欧洲日韩极速播放 | 欧美丰满熟妇bbb久久久 | 91视频www | 亚洲午夜精品a片一区二区app | 黄色一区二区三区 | 欧美成年人在线观看 | 亚洲国产精品无码专区成人 | 99欧美日本一区二区留学生 | 久久爱www人成狠狠爱综合网 | 国产免费1卡2卡 | 久久免费99精品久久久久久 | www国产亚洲精品久久网站 | 在线 你懂的 | 伊人久久成人 | 国产二区视频 | 蜜臀亚洲精品国产aⅴ综合第一 | 一本无码人妻在中文字幕 | 久草成人在线视频 | 爽爽影院在线 | 国自产偷精品不卡在线 | 日产一二三四五六七区麻豆 | 亚洲精品综合一区二区 | 国99精品无码一区二区三区 | 白嫩少妇xxxxx性hd美图 | av草逼 | 亚洲啪啪av无码片 | 天天操天天干天天舔 | 337p粉嫩日本大胆瓣开下部 | 尤物精品在线 | 性欧美乱妇高清come | 国产亚洲欧美精品永久 | 91大神在线看 | 超碰网址 | 91香蕉国产视频 | 欧美老肥熟妇多毛xxxxx | 翔田千里高潮在线播放 | 天堂8在线最新版在线 | 久久婷婷成人综合色 | 伊人中文字幕无码专区 | 国产精品一区波多野结衣 | 午夜精品在线视频 | 欧美一区精品 | 国产精品视频免费播放 | 久久久久久久综合狠狠综合 |