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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? v86_seg.asm

?? 操作系統實驗教程核心技術與編程實例書中地例子代碼
?? ASM
?? 第 1 頁 / 共 2 頁
字號:

V86IDTSEG   SEGMENT PARA USE16
            REPT 8
               IDT_DESC <?,V86_INTX_CODE_SEL,0EE00H,0>  ;TYPE=386 INTERRUPT DPL=3 P=1
            ENDM
V86IDT08    IDT_DESC <COS_INT08,V_TOS_CODE_SEL,08E00H,0>  ;ok
            REPT 4
               IDT_DESC <?,V86_INTX_CODE_SEL,0EE00H,0>  ;TYPE=386 INTERRUPT DPL=3 P=1
            ENDM
            IDT_DESC <V86_INT0D_BEGIN,V86_INT0D_CODE_SEL,0EE00H,0>  ;efTYPE=386 INTERRUPT DPL=3 P=1
            REPT 241           ;256 - 14
               IDT_DESC <0,V86_INTX_CODE_SEL,0EE00H,0>  ;TYPE=386 INTERRUPT DPL=3 P=1
            ENDM
            IDT_DESC <V86INTFF_BEGIN,V86_INTX_CODE_SEL,0EE00H,0>  ;efTYPE=386 INTERRUPT DPL=3 P=1
            ;IDT_DESC <0,TOS_TSS_SEL,0E500H,0>  ;TYPE=TASK DPL=3 P=1 error why?
V86IDTLEN   = $
V86IDTSEG   ENDS

V86_STACK0SEG SEGMENT PARA USE16     
              V86_STACK0LEN = 1024
              DB V86_STACK0LEN DUP(0)
V86_STACK0SEG ENDS

V86_STACK3SEG SEGMENT PARA USE16     
              V86_STACK3LEN = 1024
              DB V86_STACK3LEN DUP(0)
V86_STACK3SEG ENDS

V86_DATASEG   SEGMENT PARA USE16     
V86_AX        DW 0        
V86_BX        DW 0        
V86_CX        DW 1        
V86_DX        DW 0        
V86_SI        DW 0        
V86_DI        DW 0        
V86_BP        DW 0        
V86_EAX       DD 0        
V86_EBX       DD 0        
V86_ECX       DD 1        
V86_EDX       DD 0        
V86_SS        DW 0        
V86_CS        DW 0        
V86_DS        DW 0        
V86_ES        DW 0        
V86_FS        DW 0        
V86_AX_O      DW 0        
V86_BX_O      DW 0        
V86_CX_O      DW 0        
V86_DX_O      DW 0        
V86_SI_O      DW 0        
V86_DI_O      DW 0        
V86_EAX_O     DD 0        
V86_EBX_O     DD 0        
V86_ECX_O     DD 0        
V86_EDX_O     DD 0        
V86_SS_O      DW 0        
V86_CS_O      DW 0        
V86_DS_O      DW 0        
V86_ES_O      DW 0        
V86_FS_O      DW 0        

CURRENT_LDT  DW 0
CURRENT_TR   DW 0

COS_TIME        DB 30H,30H,':',30H,30H,':',30H,30H
TIME_COUNT    DB 18           ;1 second and time pice
g_ipcs        dw 0,0
g_ipcs2       dw 0,0
G_INT         DW 0
V86_BUFFER    DB 4096 DUP('$'),0
V86_BUF_LEN   DW 0
G_MSG         DB '..... GENERAL PROTECT ERROR ...'
G_MSGLEN      = $ - G_MSG
V86_DATALEN   = $              
V86_DATASEG   ENDS

PERR    EQU WORD PTR [BP+0]
PIP     EQU WORD PTR [BP+4]
PCS     EQU WORD PTR [BP+8]
PFLAG   EQU WORD PTR [BP+12]
PSP     EQU WORD PTR [BP+16]
PSS     EQU WORD PTR [BP+20]
PES     EQU WORD PTR [BP+24]
PDS     EQU WORD PTR [BP+28]
PFS     EQU WORD PTR [BP+32]
PGS     EQU WORD PTR [BP+36]

V86TSSSEG SEGMENT PARA USE16 
             DW 0,0;V_TOS_TSS_SEL,0              ;LINK
             DW V86_STACK0LEN,0      ;0_STACK V86_STACK0LEN
             DW V86_STACK0_SEL,0
             DD 0              ;1_STACK
             DW ?,0
             DD 0              ;2_STACK
             DW ?,0
             DD G_PDT_ADDR ;CR3
             DW V86BEGIN,0 ;EIP
             DW 3000H,2    ;EFLAGS IOPL=3(12.13) should be 3000h
                           ;EFLAGS VM=1(17)
             DD 0 ;EAX
             DD 0 ;ECX
             DD 0 ;EDX
             DD 0 ;EBX
             DW V86_STACK3LEN,0 ;ESP V86_STACK3LEN
             DD 0 ;EBP
             DD 0 ;ESI
             DD 0 ;EDI
             DW 0B800H,0           ;ES
             DW V86CODESEG,0       ;CS
             DW V86_STACK3SEG,0    ;SS
             DW V86_DATASEG,0      ;DS
             DW V86CODESEG,0       ;FS
             DW V86CODESEG,0       ;GS
             DW V86LDT_sel,0
             DW 0
             DW $ + 2
             DB 4000H/8 DUP(0)  
             DB 0FFH   ;I/O END
V86TSSLEN = $ 
V86TSSSEG  ENDS     

V86LDTSEG        SEGMENT PARA USE16
V86LDT           LABEL BYTE
V861M            GDT_DESC <0FFFFH,0,0,93H,0FH,0>  ;LIMIT=1M
V861M_SEL        = (V861M - V86LDT) + 4

V86_TOS_CODE    GDT_DESC <0FFFFH,3000H,42H,0FAH,0,0C0H> ;9AH=exec/read ,DPL=3
V86_TOS_CODE_SEL = (V86_TOS_CODE - V86LDT) + 4

USER_PX_LDT_INIT_BEGIN LABEL BYTE

;V86_CODE         GDT_DESC <0FFFFH,V86CODESEG,0,9AH,0,0> 
;V86_CODE_SEL     = (V86_CODE - V86LDT) + 4 
V86_STACK0       GDT_DESC <V86_STACK0LEN,V86_STACK0SEG,0,93H,0,0>   ;96H=R/W ,DOWN
V86_STACK0_SEL   = (V86_STACK0 - V86LDT) + 4
V86_DATA         GDT_DESC <V86_DATALEN,V86_DATASEG,0,92H,0,0>   ;96H=R/W ,DOWN
V86_DATA_SEL     = (V86_DATA -  V86LDT) + 4 
V86_INTX_CODE       GDT_DESC <V86_INTX_LEN ,V86_INTX_CODESEG,0,9AH,0,0> ;9AH=exec/read ,DPL=0
V86_INTX_CODE_SEL   = (V86_INTX_CODE - V86LDT) + 4
V86_INT0D_CODE      GDT_DESC <V86_INT0D_LEN ,V86_INT0D_CODESEG,0,98H,0,0> ;9AH=exec/read ,DPL=0
V86_INT0D_CODE_SEL  = (V86_INT0D_CODE - V86LDT) + 4
USER_PX_LDT_INIT_COUNT  = ($ - USER_PX_LDT_INIT_BEGIN)/(SIZE GDT_DESC)

V86_TO_COS          GAT_DESC <0 ,V_TOS_TSS_SEL,0,085H,0> 
V86_TO_COS_SEL      = (V86_TO_COS - V86LDT) +4
V86LDTLEN  = $ - V86LDT
V86LDTSEG ENDS

V86_INTX_CODESEG SEGMENT PARA USE16
        ASSUME  CS:V86_INTX_CODESEG
V86_INTX_BEGIN:
COUNT   = 0
        REPT    256
        IF COUNT EQ 21H
           ENT21H LABEL BYTE
        ENDIF
        PUSH    BP
        MOV     BP,COUNT
        JMP     DO_INTX
        COUNT = COUNT+1
        ENDM

DO_INTX:
        PUSH    BP        ;interrupt number
        MOV     BP,SP
        PUSH    EAX
        PUSH    EBX

        MOV     AX,V861M_SEL
        MOV     DS,AX
        XOR     EAX,EAX
        MOV     AX,PSP
        SUB     AX,6  ;3*2
        MOV     PSP,AX
        XOR     EBX,EBX
        MOV     BX,PSS
        SHL     EBX,4
        ADD     EBX,EAX
        MOV     AX,PIP
        MOV     [EBX],AX
        MOV     AX,PCS
        MOV     [BX+2],AX
        MOV     AX,PFLAG
        MOV     [EBX+4],AX

        MOV     BX,[BP]
        SHL     BX,2
        MOV     AX,[BX]
        MOV     PIP,AX
        MOV     AX,[BX+2]
        MOV     PCS,AX

        POP     EBX
        POP     EAX
        POP     BP
        POP     BP
        IRETD
;**********************
V86INTFF_BEGIN:    
;;test            
;            MOV AX,G_VRAM_SEL
;            MOV DS,AX
;            MOV AL,48H  ;"H"
;            MOV AH,41H
;            MOV DS:1772,AX
;;test
            MOV EBP,ESP
            SUB EBP,12
            MOV ESP,EBP

            MOV AX,V86_DATA_GDT_SEL
            MOV DS,AX
            MOV bx,WORD PTR DS:CURRENT_LDT      
            MOV WORD PTR DS:CURRENT_LDT,0  
            and bx,0ffc0h
            mov ax,V_USER_PSLDT_SEL
            and ax,0ffc0h
            cmp ax,bx
            JNE V86INTFF_BEGIN1
            lldt WORD PTR DS:CURRENT_ldt
V86INTFF_BEGIN1:
            MOV bx,WORD PTR DS:CURRENT_TR       
            MOV WORD PTR DS:CURRENT_TR,0
            and bx,0ffc0h
            mov ax,V_USER_PSTSS_SEL
            and ax,0ffc0h

            cmp ax,bx
            JNE V86INTFF_BEGIN2
;jmp V86INTFF_BEGIN2           
            jmp V86INTFF_BEGIN11
V86INTFF_BEGIN11:            
            DB 0EAH
            DW FROM_V86
            DW V_USER_PSTSS_SEL  ;ok

V86INTFF_BEGIN2:
            ;MOV AX,V_TOS_STACK_SEL
            ;MOV SS,AX
            jmp V86INTFF_BEGIN22
V86INTFF_BEGIN22:            
            DB 0EAH
            DW FROM_V86
            DW V_TOS_TSS_SEL  ;ok

V86_INTX_LEN = $
V86_INTX_CODESEG ENDS

V86_INT0D_CODESEG SEGMENT PARA USE16
        ASSUME  CS:V86_INT0D_CODESEG
V86_INT0D_BEGIN:
        MOV     AX,V86_DATA_SEL
        MOV     DS,AX
        MOV     SI,OFFSET G_MSG
        MOV     AX,V86_VRAM_SEL
        MOV     ES,AX
        MOV     DI,0
        MOV     AH,17H
        MOV     CX,G_MSGLEN
        CLD
V86_INT0DNEXT:
        LODSB
        STOSW
        LOOP V86_INT0DNEXT
        ADD     ESP,4
        MOV     AX,4C01H
        DB      0EAH
        DW      ENT21H
        DW      V86_INTX_CODE_SEL
V86_INT0D_LEN = $
V86_INT0D_CODESEG ENDS
;*************************************************v86
;*************************************************v86
;test
;  PUSH ES
;  PUSH EAX
;  push esi
;  mov esi,1ffffffh
;ghgh1:
;  MOV AX,0B800H
;  MOV ES,AX
;  MOV AL,'V'
;  MOV AH,41H  
;  MOV WORD PTR ES:[808],AX
;  dec esi
;  jnz ghgh1
;  pop esi
;  POP EAX
;  POP ES
;jmp G_TO_COS
; test

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩亚洲欧美高清| 国产精品夜夜爽| 26uuu国产日韩综合| 91在线丨porny丨国产| 美女免费视频一区二区| 一区二区三区四区五区视频在线观看| 久久久一区二区三区捆绑**| 在线播放一区二区三区| 91色视频在线| 成人自拍视频在线| 久久国产尿小便嘘嘘| 亚洲午夜精品网| 亚洲图片激情小说| 成人av网址在线观看| 久久精品久久综合| 午夜精品123| 一区二区三区四区亚洲| 国产精品电影一区二区三区| 精品蜜桃在线看| 日韩一区二区三区免费看| 精品视频免费看| 欧日韩精品视频| 在线看一区二区| 色综合久久综合网欧美综合网| 成人三级伦理片| 丁香天五香天堂综合| 国产精品 欧美精品| 经典三级视频一区| 久久99国产精品久久| 日本系列欧美系列| 免费人成在线不卡| 奇米精品一区二区三区在线观看| 午夜免费欧美电影| 首页国产欧美久久| 午夜精品福利久久久| 日韩高清在线一区| 乱一区二区av| 国模套图日韩精品一区二区| 国产一区二区在线看| 国产一区二区在线观看视频| 国产精品一品二品| 成人白浆超碰人人人人| 99精品在线观看视频| 色综合久久久久| 欧美在线影院一区二区| 欧美日韩综合一区| 欧美日韩国产片| 日韩三级在线观看| 国产亚洲一区二区三区四区| 国产色婷婷亚洲99精品小说| 亚洲欧洲日韩av| 亚洲猫色日本管| 亚洲国产综合91精品麻豆| 五月天国产精品| 毛片av一区二区| 国产成人免费网站| 91官网在线免费观看| 欧美日韩国产成人在线91| 日韩一区二区在线观看视频 | 欧美日韩和欧美的一区二区| 欧美日韩激情一区二区| 精品伦理精品一区| 国产精品美日韩| 亚洲成人激情自拍| 精品一区二区在线视频| 99久久精品情趣| 欧美日韩久久久久久| 欧美成人在线直播| 国产精品久久久久毛片软件| 亚洲国产日韩a在线播放| 麻豆精品新av中文字幕| 成人精品在线视频观看| 欧美日韩精品免费| 久久久www免费人成精品| 亚洲视频1区2区| 日韩精品一二区| 成人精品小蝌蚪| 欧美日韩国产成人在线免费| 久久精品日产第一区二区三区高清版| 日韩理论片网站| 蜜臀久久久久久久| 成人看片黄a免费看在线| 宅男在线国产精品| 国产精品午夜电影| 日韩综合在线视频| av中文一区二区三区| 日韩免费视频一区二区| 亚洲视频一区在线| 国产自产高清不卡| 欧美日韩免费在线视频| 国产欧美日韩精品一区| 日韩精品亚洲一区二区三区免费| 粉嫩嫩av羞羞动漫久久久| 欧美日韩国产美| 亚洲三级在线播放| 国产激情偷乱视频一区二区三区| 欧美手机在线视频| 国产精品国产馆在线真实露脸| 天涯成人国产亚洲精品一区av| www.亚洲人| 久久久久国产精品麻豆| 麻豆精品一区二区av白丝在线| 91极品美女在线| 国产精品美女久久久久av爽李琼 | 欧美激情一区二区三区全黄| 性做久久久久久免费观看欧美| eeuss鲁片一区二区三区在线观看| 日韩一级完整毛片| 午夜电影久久久| 欧美亚洲一区三区| 亚洲视频在线一区观看| 欧美在线观看视频一区二区三区 | 天天av天天翘天天综合网 | 日韩美女精品在线| 国产在线视频一区二区三区| 欧美另类变人与禽xxxxx| 一区二区三区精品视频| 99久久久免费精品国产一区二区| 久久久夜色精品亚洲| 精品一区二区综合| 日韩精品一区二区三区三区免费| 婷婷开心激情综合| 欧美久久久久久久久中文字幕| 一区二区视频在线| 色综合夜色一区| 中文字幕综合网| 99久久综合色| 国产精品的网站| 91免费版在线| 亚洲乱码国产乱码精品精的特点| 不卡一二三区首页| 国产精品国产a级| 99精品久久99久久久久| 亚洲人成7777| 欧美中文字幕一二三区视频| 亚洲一区二区三区在线看| 欧美三级中文字幕| 石原莉奈一区二区三区在线观看| 欧美体内she精高潮| 日韩av电影天堂| 精品国产凹凸成av人网站| 国产乱妇无码大片在线观看| 欧美国产日韩一二三区| 成人av免费观看| 亚洲一区在线视频观看| 欧美日本国产一区| 麻豆视频观看网址久久| 久久久久国产精品免费免费搜索| 成人看片黄a免费看在线| 亚洲精品国产第一综合99久久| 在线精品视频一区二区三四| 日韩精品亚洲专区| 久久精品这里都是精品| 99re这里只有精品首页| 亚洲与欧洲av电影| 欧美成人午夜电影| 国产成人免费在线观看不卡| 亚洲精品国产a| 日韩午夜激情免费电影| 懂色av中文字幕一区二区三区| 亚洲精品中文在线| 宅男在线国产精品| 国产91高潮流白浆在线麻豆 | 91老师片黄在线观看| 亚洲成人av一区二区| 日韩精品一区二区三区三区免费 | 欧美第一区第二区| 成人一级片网址| 亚洲国产综合视频在线观看| 精品国产一区二区精华| 99综合影院在线| 日韩av电影一区| 中文字幕在线观看不卡| 91精品午夜视频| 丁香六月综合激情| 日韩av电影免费观看高清完整版在线观看 | 国产成人精品网址| 亚洲电影你懂得| 国产日韩欧美高清在线| 色婷婷av一区二区三区gif| 国内精品自线一区二区三区视频| 亚洲靠逼com| 国产午夜精品一区二区三区四区| 欧美视频精品在线观看| 国产精品综合一区二区三区| 一区二区三区美女| 久久嫩草精品久久久久| 欧美性受极品xxxx喷水| 成人免费视频视频| 日本成人在线电影网| 自拍偷拍亚洲欧美日韩| 久久一区二区三区四区| 欧美日本在线一区| 93久久精品日日躁夜夜躁欧美| 久草精品在线观看| 午夜日韩在线观看| 亚洲欧洲综合另类| 国产婷婷色一区二区三区四区 | 日韩国产精品久久| 亚洲欧美成人一区二区三区|