亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cpu01mon.sa

?? 一個(gè)簡(jiǎn)單的cpu的VHDL源碼描述
?? SA
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
*    MOVE STACK DOWN 2 PLACES
*
 DES . MAKE ROOM ON STACK FOR ADDRESS OF PART #2
 DES
 TSX . POINT AT DATA ON STACK
 LDAB #7 . 7 BYTES TO MOVE
GO$SBL LDAA 2,X . GET A BYTE
 STAA 0,X
 INX
 DECB 
 BNE GO$SBL
 LDX #GO$SB2 . POINT AT PART #2
 STX TMP$00
 TSX
 LDAB TMP$00 . POINT AT PART #2 (MSB)
 LDAA TMP$00+1 . (LSB)
 STAB 7,X . SET 'RETURN' ADDRESS
 STAA 8,X
 LDAB VALUE . USER'S ADDRESS
 LDAA VALUE+1
 STAB 5,X . SET 'PC'
 STAA 6,X
 BRA GOU$DO
 SPC 1
*
*     SUB-ROUTINE PART #2
*
GO$SB2 SWI . CAUSE A BREAKPOINT CHECK
SUB$RK EQU *
 SPC 1
*
*    PART THREE OF SUB-ROUTINE CALL
*
GO$SB3 STS USTACK . RESTORE USER'S STACK
 TSX
 LDS #STACK . GET THE DEBUG STACK
 LDAB VALUE
 LDAA VALUE+1
 STAB 5,X . PUT CALLED ADDRESS IN PC
 STAA 6,X
 JSR DSPRTS
 JSR CLRBRK . GO RESET THE BREAK POINTS
 JMP MON$
 SPC 1
*
*      CAN'T DO IT
*
GO$BAD LDS #STACK . RESET DEBUG STACK
 JSR WHATER . CANT DO IT
 JMP MON$
 SPC 1
*
*     CONTINUE WITH USER'S PROGRAM
*
GO$CON LDX USTACK
 LDX 6,X . GET USER'S PC
 INC VFLAG . SET THE FLAG
 STX VALUE . SET PC
 JMP GO$USR . GO TO USER'S PROGRAM
 SPC 1
*
*     SET/DISPLAY THE OFFSET
*
OFS$RT TST VFLAG . SET OR DISPLAY
 BEQ OFS$DS . DISPLAY
 LDX VALUE . GET THE NEW OFFSET
 STX OFFSET
 RTS
 SPC 1
*
OFS$DS LDAA #'= . SEND AN EQUAL SIGN
 JSR OUTCH
 LDX #OFFSET . POINT AT THE OFFSET VALUE
 JMP OUT4HS
 SPC 1
*
*      SET/DISPLAY BREAK-POINTS
*
SBKRTN TST VFLAG . SEE IF DISPLAY OR SET
 BEQ BK$DSP
 SPC 1
*
*      SET A BREAK POINT
*
 LDX #BRKPTS . FIND EMPTY BREAK POINT AREA
 LDAB #3 . 3 PLACES TO CHECK
BRK$L0 LDAA 0,X . SEE IF EMPTY
 ORAA 1,X
 BEQ BRK$00
 INX . MOVE TO NEXT PLACE
 INX
 INX
 INX
 DECB
 BNE BRK$L0
 SPC 1
*
BRK$00 LDAB VALUE . POINT AT ADDRESS OF BREAK POINT
 LDAA VALUE+1
 STAB 0,X . SAVE THIS AREA
 STAA 1,X
 CLR 2,X
 CLR 3,X
 RTS
 SPC 1
*
*     DISPLAY THE BREAK POINTS
*
BK$DSP LDX #BRKSTG . SEND THE STRING MESSAGE
 JSR PDATA
 LDX #BRKPTS . POINT AT THE BREAK POINT ADDRESSES
 LDAB #4 . 4 TO DISPLAY
 SPC 1
*
BK$DL0 JSR OUT4HS . PRINT THE ADDRESS
 INX
 INX
 DECB
 BNE BK$DL0
 RTS
 SPC 1
*
*     CLEAR BREAK POINTS
*
CBKRTN TST VFLAG . DO ALL OR ONE?
 BEQ CBK$AL . ALL
 SPC 1
*
*     SEARCH FOR BREAK POINT ADDRESS
*
 LDX #BRKPTS . POINT AT THE TABLE
 LDAB #4 . 4 PLACES TO CHECK
 STAA TMP$00
 LDAB VALUE 
 LDAA VALUE+1
CBK$L0 CMPB 0,X . CHECK MSB
 BNE CBK$NX . NOT THIS ONE
 CMPA 1,X . CHECK LSB
 BEQ CBK$CL . CLEAR THIS LOCATION
CBK$NX INX . MOVE TO NEXT LOCATION
 INX
 INX
 INX
 DEC TMP$00 . DECR. COUNTER
 BNE CBK$L0
 RTS
 SPC 1
*
CBK$CL CLR 0,X . CLEAR THIS LOCATION
 CLR 1,X
 CLR 2,X
 CLR 3,X
 RTS
 SPC 1
*
*     CLEAR ALL BREAK POINTS
*
CBK$AL LDX #BRKPTS . POINT AT TABLE
 LDAB #4*4 . 4 SETS
CBK$L1 CLR 0,X
 INX
 DECB
 BNE CBK$L1
 RTS
 SPC 1
*
*       SET BREAK POINTS IN MEMORY
*
SETBRK LDX #BRKPTS . POINT AT BREAK POINT TABLE
 LDAB #4
SET$B0 STX TMP$03 . SAVE THE POINTER
 LDX 0,X . GET ADDRESS
 BEQ SET$NX . DO NEXT
 LDAA 0,X . GET THE BYTE
 LDX TMP$03 . RESTORE THE POINTER
 STAA 2,X . SAVE IT
 LDX 0,X . POINT AT ADDRESS AGAIN
 LDAA #$3F . SET BREAK POINT IN THIS LOCATION
 STAA 0,X
SET$NX LDX TMP$03 . MOVE TO NEXT LOCATION
 INX
 INX
 INX
 INX
 DECB
 BNE SET$B0
 RTS
 SPC 1
*
*     RESTORE THE BREAK POINT VALUES
*
CLRBRK LDX #BRKPTS . POINT AT TABLE
 LDAB #4
CLR$B0 STX TMP$03 . SAVE THE POINTER
 LDAA 2,X . GET THE OPCODE
 LDX 0,X . POINT AT THE OPCODE ADDRESS
 BEQ CLR$NY 
 STAA 0,X . RESTORE IT
CLR$NY LDX TMP$03 . MOVE TO NEXT LOCATION
 INX
 INX
 INX
 INX
 DECB
 BNE CLR$B0
 RTS
 SPC 1
*
*     GET BEGIN AND END ADDRESSES
*
BEGEND LDX #BEGMSG . SEND THE QUESTION
 JSR BEGVAL . GET A VALUE AND A CHAR.
 BNE BEGEXT . NO
 STX BEGADR . SAVE THE VALUE
 LDX #ENDMSG . SEND THE QUESTION
 BSR BEGVAL . GET THE VALUE
 BNE BEGEXT . NO
 STX ENDADR . SAVE THE 'END' ADDRESS
 CLC
 RTS
 SPC 1
*
*   SEND STRING AND GET THE VALUE
*
BEGVAL JSR PDATA . SEND STRING TO DISPLAY
 LDX #DUMTBL . POINT AT DUMMY TABLE
 JSR GETCMD . GET A VALUE
 LDX VALUE
 CMPA #CR . SEE IF GOOD VALUE
 RTS
 SPC 1
*
*   ERROR EXIT FROM BEGEND ROUTINE
*
BEGEXT SEC
 RTS
 SPC 1
*
*     FILL MEMORY FROM XXXX TO YYYY WITH ZZ
*
FILMEM LDAA VALUE+1 . GET THE FILL VALUE
 PSHA . SAVE IT
 BSR BEGEND . GET THE ADDRESSES
 BCS FIL$EX . FORGET IT
 LDAB OFFSET . ADD THE OFFSET
 LDAA OFFSET+1
 ADDA ENDADR+1 . SET THE FROM ADDRESS
 ADCB ENDADR
 ADDA #1 . SET STOP ADDRESS
 ADCB #0
 STAB ENDADR
 STAA ENDADR+1
 LDAB OFFSET
 LDAA OFFSET+1
 ADDA BEGADR+1 . SET THE TO ADDRESS
 ADCB BEGADR
 STAB BEGADR
 STAA BEGADR+1
 PULA . GET FILL CHAR.
 LDX BEGADR . GET 'FROM' ADDRESS
 SPC 1
*
FIL$L0 STAA 0,X . STORE THE BYTE
 INX
 CPX ENDADR . DONE?
 BNE FIL$L0 . NO
 RTS
 SPC 1
*
FIL$EX PULA . RESTORE THE STACK
 RTS
 SPC 1
*
*     COMPARE MEMORY FROM XXXX TO YYYY WITH ZZ
*
CMPMEM LDAA VALUE+1 . GET THE COMPARE VALUE
 PSHA . SAVE IT
 BSR BEGEND . GET THE ADDRESSES
 BCS CMP$EX . FORGET IT
 LDAB OFFSET . ADD THE OFFSET
 LDAA OFFSET+1
 ADDA ENDADR+1 . SET THE FROM ADDRESS
 ADCB ENDADR
 ADDA #1 . SET STOP ADDRESS
 ADCB #0
 STAB ENDADR
 STAA ENDADR+1
 LDAB OFFSET
 LDAA OFFSET+1
 ADDA BEGADR+1 . SET THE TO ADDRESS
 ADCB BEGADR
 STAB BEGADR
 STAA BEGADR+1
 PULA . GET COMPARE CHAR.
 LDX BEGADR . GET 'FROM' ADDRESS
 SPC 1
*
CMP$L0 LDAB 0,X . GET THE BYTE
 CBA . COMPARE THE BYTES
 BEQ CMP$NX . DATA COMPARED, MOVE ON
 SPC 1
*
*    SEND AN ERROR MESSAGE
*
CMP$ER STX TMP$00 . SAVE THE ADDRESS
 STAB TMP$01 . SAVE IT
 PSHA . SAVE THE COMPARE VALUE
 LDX #CMPMSG . SEND THE MESSAGE
 JSR PDATA 
 LDX #TMP$00 . POINT AT THE ADDRESS
 JSR OUT4HS  . SEND THE ADDRESS
 JSR OUT2HS  . SEND THE BAD DATA
 LDX TMP$00  . GET THE POINTER
 PULA . RESTORE THE COMPARE VALUE
 SPC 1
*
CMP$NX INX . MOVE TO NEXT LOCATION
 CPX ENDADR . DONE?
 BNE CMP$L0 . NO
 RTS
 SPC 1
*
CMP$EX PULA . RESTORE THE STACK
 RTS
 SPC 1
*
*    MOVE DATA FROM XXXX TO YYYY
*
MOVMEM LDX VALUE . GET DESTINATION
 STX TMP$00 SAVE IT
 TST VFLAG . WAS A VALUE ENTERED?
 BEQ MOVEXT . NO
 JSR BEGEND . GET ADDRESSES
 BCS MOVEXT . FORGET IT
 LDX ENDADR
 INX . BUMP ADDRESS FOR COMPARISON
 STX ENDADR
 LDX BEGADR . GET 'FROM' ADDRESS
 SPC 1
*
MOVLP0 LDAA 0,X . GET A BYTE
 INX
 STX BEGADR
 LDX TMP$00 . GET DESTINATION ADDRESS
 STAA 0,X . STORE IT
 INX
 STX TMP$00
 LDX BEGADR . FROM ADDRESS
 CPX ENDADR . DONE?
 BNE MOVLP0 . NO
MOVEXT RTS
 SPC 1
*
*    SET/RESET/PRINT IRQ FLAG
*
IRQ$RT TST VFLAG . SET/RESET OR PRINT
 BEQ PRTIRQ . PRINT IT
 LDAA VALUE+1 . GET THE VALUE
 ANDA #%1 . SAVE THE BIT 0 ONLY
 STAA IRQFLG
 RTS
 SPC 1
*
*    PRINT THE FLAG
*
PRTIRQ LDAA #'= . SEND AN EQUAL SIGN
 JSR OUTCH
 LDX #IRQFLG . POINT AT THE FLAG
 JMP OUT2H
 SPC 1
*
*     CHECK FOR OPERATOR INTERVENTION
*
CKBRK LDAA ACSTAT . CHECK FOR CHARACTER
 BITA #RDRF . RDRF TRUE?
 BEQ CKBRKN . NOT YET
 STAA AECHO . NO ECHO
 JSR INCHNP . GET THE CHARACTER
CKBRKL CMPA #$17 . <CNTRL-W>
 BNE CKBRKN . NO
 SPC 1
*
*    WAIT FOR ANOTHER CHARACTER
*
CKBKL JSR INCHNP . WAIT FOR ANOTHER CHARACTER
 CMPA #$18 . <CNTRL-X>
 BNE CKBRKL . DONT ABORT YET
 SEC
 RTS
 SPC 1
*
*    NO INTERVENTION
*
CKBRKN CLR AECHO . CLEAR THE ECHO FLAG
 RTS
 SPC 1
*
*    DISPLAY MEMORY LOCATIONS
*
DSPMEM JSR BEGEND . GET THE BEG-END ADDRESSES
 BCC DMP$00 . OK TO DUMP
 JMP DMP$EX . EXIT
 SPC 1
*
*    DUMP THE MEMORY
*
DMP$00 LDAB BEGADR . SET ON EVEN BOUNDRY
 LDAA BEGADR+1
 ANDA #%11110000 . ZERO OUT LSN
 ADDA OFFSET+1 . ADD THE OFFSET
 ADCB OFFSET
 STAB BEGADR
 STAA BEGADR+1
 LDAB ENDADR
 LDAA ENDADR+1
 ORAA #%1111 . END ON EVEN 16
 ADDA OFFSET+1 . ADD THE OFFSET
 ADCB OFFSET
 ADDA #1 . AND ADD 1
 ADCB #0
 STAB ENDADR
 STAA ENDADR+1
 SPC 1
*
*     MAKE ROOM FOR ASCII DATA ON STACK
*
 LDAB #17 . 17 PLACES
DM$PL0 DES
 DECB
 BNE DM$PL0
 SPC 1
*
*     RESET ASCII BUFFER
*
DMP$L0 BSR CKBRK . CHECK FOR USER INTERVENTION
 BCS DMP$BK . EXIT THE PROGRAM
 TSX . POINT AT THE ASCII BUFFER
 STX TMP$00 . RESET THE POINTER
 SPC 1
*
*     OUTPUT MEMORY DATA
*
DMP$L2 LDX #BEGADR . POINT AT DATA ADDRESS
 JSR PCRLF . NEW LINE
 JSR OUT4HS . PRINT ADDRESS
 LDAB #16 . 16 BYTES TO PRINT
 LDX BEGADR . POINT AT THE DATA
 SPC 1
*
DMP$L3 LDAA 0,X . GET THE BYTE
 STX BEGADR
 CMPA #$7F . SEE IF ASCII
 BHI DMP$NA . NOT ASCII
 CMPA #SPACE-1
 BHI DMP$IA . IT IS ASCII
DMP$NA LDAA #'. . SET TO ASCII <.>
DMP$IA LDX TMP$00 . STORE OUT THE CHAR.
 STAA 0,X
 INX
 STX TMP$00
 LDX BEGADR . POINT AT THE DATA AGAIN
 JSR OUT2HS
 DECB
 BNE DMP$L3
 SPC 1
*
*     PRINT ASCII DATA
*
 STX BEGADR . SAVE POINTER
 LDX TMP$00 . SET END OF STRING
 LDAA #4
 STAA 0,X
 TSX . POINT AT DATA
 JSR PDATA1 . PRINT THE STRING
 LDX BEGADR . POINT AT THE DATA
 CPX ENDADR . ARE WE DONE?
 BNE DMP$L0
DMP$BK LDAB #17 . RESTORE THE STACK
DMP$L4 INS
 DECB
 BNE DMP$L4
DMP$EX RTS
 SPC 1
*
*     'S1' RECORD LOADER
*
LOAD LDAA #$11 . SEND DEVICE ON
 STAA AECHO . TURN OFF ECHO
 JSR OUTCH
 SPC 1
*
*     MAKE ROOM ON THE STACK FOR HEADER
*
 LDAB #26
LOD$L0 DES
 DECB
 BNE LOD$L0
 LDAA #4 . SET END OF RECORD
 TSX
 STAA 0,X
 SPC 1
*
*     WAIT FOR RECORD INDICATOR
*
LOAD00 JSR INCHNP . GET A BYTE
 CMPA #'S . IS IT AN 'S'
 BNE LOAD00 . NO
 SPC 1
*
*     WAIT FOR RECORD TYPE
*
 LDX #RECTYP . POINT AT THE RECORD TABLE
 JSR CHKCMD . PROCESS IT
 BCS LOAD00 . NOT A GOOD
 LDX 1,X . GET TASK ADDRESS
 JMP 0,X . JUMP TO IT!
 SPC 1
*
*     RECORD TYPE TABLE
*
RECTYP FCB '0 . HEADER RECORD
 FDB LOADHD
 FCB '1 . DATA RECORD
 FDB LOADRC
 FCB '9 . END OF FILE RECORD
 FDB LOADED 
DUMTBL FCB 0 . TERMINATOR
 SPC 1
*
*      LOAD THE END OF RECORD
*
LOADED JSR LD$SET . GET THE SETUP 
 JSR IN2HEX . GET THE CHECKSUM
 DEC BYTECT . SEE IF LEGAL
 BNE LD$EDE . NOT LEGAL START ADDRESS
 INC CHKSUM
 BNE LD$EDE . ILLEGAL ADDRESS
 STX TMP$00
 LDX USTACK . PUT START ADDRESS IN USER'S PC
 LDAB TMP$00
 LDAA TMP$00+1
 STAB 6,X
 STAA 7,X
LD$EDE LDAA #$13 . TURN OFF READER
 JSR OUTCH
 LDX #0 . DELAY SOME
LOD$L1 DEX
 BNE LOD$L1
 TSX . POINT AT THE HEADER
 JSR PDATA
LOD$EX LDAB #26 . RESTORE THE STACK
LOD$L2 INS
 DECB
 BNE LOD$L2
 JMP MON$
 SPC 1
*
*     LOAD THE HEADER
*
LOADHD JSR LD$SET . SET-UP LOAD
 LDAB BYTECT . CHECK BYTE COUNT
 CMPB #25
 BHI LOAD00 . FORGET IT
 TSX . POINT AT THE STACK
 SPC 1
*
*     READ IN THE HEADER
*
LD$HD0 JSR IN2HEX . GET A CHAR.
 STAA 0,X . STORE IT
 INX
 DEC BYTECT . DONE?
 BNE LD$HD0
 DEX . BACK-UP 1 BYTE
 LDAA #4 . SET E.O.T.
 STAA 0,X
 JMP LOAD00 . CONTINUE THE LOAD
 SPC 1
*
*     LOAD A RECORD
*
LOADRC JSR LD$SET . GET SETUP
LOADR0 JSR IN2HEX . GET A BYTE
 DEC BYTECT . DONE?
 BEQ LD$CHK
 STAA 0,X
 CMPA 0,X
 BNE MEMER$
 INX
 BRA LOADR0
 SPC 1
*
*    ERRORS DURING LOAD
*
MEMER$ LDX #MEMERR . MEMORY NO-CHANGE
 BRA LERR$R
 SPC 1
*
CHKER$ LDX #CHKERR . CHECK-SUM ERROR
LERR$R JSR PDATA
 BRA LOD$EX
 SPC 1
*
*    CHECK FOR PROPER SUM
*
LD$CHK INC CHKSUM
 BNE CHKER$
 JMP LOAD00
 SPC 1
*
*     RECORD SET-UP
*
LD$SET CLR CHKSUM . ZERO CHECK SUM
 JSR IN2HEX . GET BYTE COUNT
 BCS STP$LD . STOP LOADER
 SUBA #2 . REMOVE ADDRESS
 STAA BYTECT . SAVE THE COUNT
 JSR IN4HEX . GET LOAD ADDRESS
 BCS STP$LD
 RTS
 SPC 1
*
*     STOP LOADER
*
STP$LD LDX #LOADER
 JSR PDATA1
 BRA LOD$EX
 SPC 1
*
*     SWI ENTRY POINT
*
SWI1 TSX . GET THE P.C.
 LDX 5,X
 CPX #SUB$RK
 BNE NOT$SB . NOT SUB-ROUTINE CALL
 JMP GO$SB3 . WAS SUB-ROUTINE CALL
 SPC 1
*
*    GET ADDRESS OF SWI
*
NOT$SB TSX
 LDAB #4 . 4 PLACES TO LOOK
 STAB TMP$00
 LDAB 5,X . GET PC
 LDAA 6,X
 SUBA #1 . POINT AT THE 'SWI'
 SBCB #0
 LDX #BRKPTS . POINT AT THE TABLE
 SPC 1
*
*     CHECK TABLE AGAINST PC-1
*
BP$LOP CMPB 0,X . IS THIS THE ADDRESS
 BNE BP$NXT
 CMPA 1,X . LSB
 BEQ BP$FND . YES
BP$NXT INX . MOVE TO NEXT LOCATION
 INX
 INX
 INX
 DEC TMP$00
 BNE BP$LOP
 BRA SWIX . GO TO USER'S 'SWI'
 SPC 1
*
*   IF HERE, WE FOUND A BREAK-POINT
*
BP$FND  TSX
 STAB 5,X . PUT NEW PC ON STACK
 STAA 6,X
 STS USTACK . SAVE USER'S STACK
 LDX #STACK . GET THE DEBUG STACK
 JSR CLRBRK . RESTORE THE BREAK POINTS
 JSR DSPBRK . DISPLAY THE BREAK POINT
 JMP MON$ . GO TO MONITOR ENTRY
 SPC 1
*
*      VECTOR ENTRIES
*
.SWI1 LDAA #'0
 FCB $8C . SKIP 2
.IRQ LDAA #'1
 FCB $8C . SKIP 2
.NMI LDAA #'2
 SPC 1
*
*      DISPLAY THE REGISTERS
*
 STS USTACK . SAVE USER'S STACK
 LDS #STACK . GET MONITOR STACK
 LDX #DSPTBL . POINT AT COMMAND TABLE
 JSR CHKCMD . PROCESS THE COMMAND
 BCS DSPMON . JUST ENTER MONITOR
 LDX 1,X . GET ROUTINE
 JSR 0,X . PRINT THE REGISTERS
DSPMON JMP MON$ . ENTER THE MONITOR
 SPC 1
*
*    DISPLAY TABLE
*
DSPTBL FCB '0 . SWI
 FDB DSPSWI
 FCB '1 . IRQ
 FDB DSPIRQ
 FCB '2 . NMI
 FDB DSPNMI
 FCB 0 . TERMINATOR
 SPC 1
*
*    TABLE OF VECTOR ENTRIES
*
VECTBL FDB .IRQ,.IRQ,.IRQ,.IRQ
 FDB .IRQ,.SWI1,.NMI
*
*    VECTOR ROUTINES
*
IRQ3 LDX #IRQSCI . 'SCI'
 BRA VECT$
IRQ2 LDX #IRQTOF . 'TOF'
 BRA VECT$
IRQ1 LDX #IRQOCF . 'OCF'
 BRA VECT$
IRQ0 LDX #IRQICF . 'ICF'
 BRA VECT$
IRQ LDX #IRQ$VC . 'IRQ'
 BRA VECT$
SWIX LDX #SWI$VC . 'SWI'
 BRA VECT$
NMI LDX #NMI$VC . 'NMI'
 SPC 1
*
*     VECTOR ENTRY
*
VECT$ LDAB 0,X . GET THE VECTOR
 LDAA 1,X
 PSHA . SAVE IT ON THE STACK
 PSHB
 TSX . POINT AT THE STACK DATA
 LDAA 4,X . GET THE AREG
 LDAB 3,X . GET THE BREG
 PSHA . SAVE THE AREG
 LDAA 2,X . GET CC'S
 ORAA #%00010000 . SET THE 'I' BIT
 LDX 5,X . GET XREG
 TAP . SET THE CC'S
 PULA . RESTORE THE AREG
 RTS
 SPC 1
*
*      VECTORS
*
 ORG ROMSTR+$7F0
 FDB IRQ3,IRQ2,IRQ1,IRQ0
 FDB IRQ,SWI1,NMI,COLD$
 SPC 1
 END

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美精品在线视频| 91精品在线观看入口| 亚洲成人av福利| 91精品久久久久久久久99蜜臂| 成人天堂资源www在线| 午夜一区二区三区在线观看| 国产精品少妇自拍| 日韩一区二区三区电影| 色综合网色综合| 国产成人在线视频网站| 奇米影视一区二区三区| 亚洲精品乱码久久久久| 国产精品视频第一区| 欧美精品一区二区在线播放| 69堂成人精品免费视频| 一本到三区不卡视频| 国产成人h网站| 免费在线观看成人| 一区二区高清视频在线观看| 国产精品国产三级国产aⅴ中文 | 色婷婷av一区二区三区gif| 国产麻豆成人精品| 午夜影院久久久| 亚洲一区在线观看网站| 国产精品全国免费观看高清| 久久久久久久久蜜桃| 欧美一区二区三区视频免费 | av亚洲精华国产精华精| 国产在线精品国自产拍免费| 男女男精品视频| 丝袜美腿亚洲综合| 亚洲一区二区三区不卡国产欧美| 亚洲欧美日韩系列| 亚洲人成精品久久久久| 亚洲欧美自拍偷拍色图| 国产精品欧美久久久久无广告| 26uuu国产日韩综合| 欧美va亚洲va在线观看蝴蝶网| 欧美一区二区视频在线观看2022 | 久久91精品国产91久久小草| 日韩黄色一级片| 性欧美大战久久久久久久久| 亚洲国产一区在线观看| 亚洲国产日韩综合久久精品| 亚洲国产综合人成综合网站| 亚洲成人手机在线| 日韩激情在线观看| 久久精工是国产品牌吗| 久久国产尿小便嘘嘘尿| 精品系列免费在线观看| 国产专区综合网| 国产69精品久久久久毛片| 成人免费视频国产在线观看| 成人av在线播放网址| av不卡免费在线观看| 91麻豆精品一区二区三区| 色噜噜狠狠色综合欧洲selulu| 91搞黄在线观看| 欧美日韩国产天堂| 欧美sm极限捆绑bd| 国产欧美一区二区精品性| 国产精品国模大尺度视频| 一区二区三区精品在线观看| 无码av免费一区二区三区试看| 卡一卡二国产精品| 国产精品99久久久| 99r精品视频| 欧美电影一区二区| 久久精品日产第一区二区三区高清版| 国产日本一区二区| 一区二区三区四区中文字幕| 五月婷婷综合在线| 激情五月激情综合网| jvid福利写真一区二区三区| 在线观看一区日韩| 精品国产91洋老外米糕| 国产精品天天看| 亚洲妇熟xx妇色黄| 国产福利一区二区三区视频在线 | 91在线视频在线| 欧美色偷偷大香| 久久久精品2019中文字幕之3| 中文字幕一区二区三区在线不卡| 视频一区视频二区中文| 成人少妇影院yyyy| 欧美一区二区在线免费观看| 国产精品三级在线观看| 人人狠狠综合久久亚洲| 成人黄色小视频在线观看| 欧美蜜桃一区二区三区| 欧美激情一区二区三区在线| 亚洲一区二区三区在线播放| 国产麻豆视频精品| 欧美日本一区二区在线观看| 国产欧美一区二区精品秋霞影院| 夜夜精品浪潮av一区二区三区| 国产剧情一区在线| 欧美日本在线播放| 亚洲桃色在线一区| 国模冰冰炮一区二区| 欧美亚州韩日在线看免费版国语版| 国产午夜精品一区二区三区视频| 性做久久久久久| 色综合色综合色综合色综合色综合| 精品久久久久久亚洲综合网| 亚洲一区二区精品3399| 成人免费观看视频| 精品美女在线观看| 日欧美一区二区| 在线一区二区观看| 国产精品久久久久天堂| 国产乱码精品一区二区三| 欧美一区二区三区小说| 亚洲自拍与偷拍| 91在线免费播放| 国产精品毛片久久久久久 | 91久久精品日日躁夜夜躁欧美| 久久美女高清视频| 麻豆精品国产91久久久久久| 欧美日韩精品一区二区在线播放| 亚洲欧美一区二区三区久本道91| 丁香天五香天堂综合| 欧美精品一区二区三| 偷拍亚洲欧洲综合| 欧美视频在线观看一区二区| 亚洲欧美激情在线| 99久久精品国产毛片| 中文子幕无线码一区tr| 国产白丝精品91爽爽久久| 久久久精品免费网站| 国产在线国偷精品免费看| 日韩无一区二区| 久久国产精品99久久人人澡| 日韩视频在线一区二区| 蜜臀91精品一区二区三区 | 亚洲人成7777| 91香蕉视频黄| 亚洲欧美激情视频在线观看一区二区三区 | 一本久道中文字幕精品亚洲嫩| 国产精品入口麻豆原神| eeuss国产一区二区三区| 国产精品国模大尺度视频| eeuss鲁片一区二区三区在线观看| 国产精品久久久久久久久图文区| 成人在线视频首页| 欧美韩国日本不卡| 91丨九色丨黑人外教| 一区二区三区四区中文字幕| 欧美日韩国产中文| 青青草一区二区三区| 亚洲精品一区二区三区四区高清 | 中文字幕va一区二区三区| 不卡在线视频中文字幕| 亚洲天堂福利av| 欧美日韩精品一区二区三区四区| 日韩av成人高清| 精品国精品国产| 顶级嫩模精品视频在线看| 亚洲免费观看高清完整版在线观看| 在线精品视频免费观看| 奇米色一区二区三区四区| 337p粉嫩大胆色噜噜噜噜亚洲| 国产成人亚洲综合色影视| 国产精品久久久一区麻豆最新章节| 日本丶国产丶欧美色综合| 日本欧美加勒比视频| 国产午夜精品一区二区三区视频| 91在线视频播放地址| 日韩成人免费电影| 国产婷婷一区二区| 欧美色图激情小说| 国产一区二区三区免费在线观看| 亚洲日韩欧美一区二区在线| 欧美电影影音先锋| 国产91对白在线观看九色| 亚洲成人av一区二区| 国产午夜亚洲精品羞羞网站| 欧美一a一片一级一片| 狠狠网亚洲精品| 亚洲视频在线观看一区| 欧美一区二区三区公司| 北条麻妃国产九九精品视频| 午夜精品久久一牛影视| 欧美激情一区二区三区在线| 欧美日韩国产天堂| 不卡大黄网站免费看| 麻豆91免费看| 亚洲精品少妇30p| 久久精品一区蜜桃臀影院| 欧美性极品少妇| 懂色av中文一区二区三区| 日韩精品亚洲一区二区三区免费| 国产精品免费网站在线观看| 这里是久久伊人| 色婷婷激情综合| 成人av在线电影| 国产一区999| 蜜臀久久99精品久久久久久9| 一区二区在线观看免费| 国产午夜亚洲精品理论片色戒|