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

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

?? sys32.inc

?? MenuetOS是一個用匯編開發的32/64位PC操作系統
?? INC
?? 第 1 頁 / 共 5 頁
字號:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;                                                               ;;
;;  MenuetOS process management, protected ring3                 ;;
;;                                                               ;;
;;  Distributed under GPL. See file COPYING for details.         ;;
;;  Copyright 2003 Ville Turjanmaa                               ;;
;;                                                               ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

align 4

irq0:

        cmp   [error_interrupt],-1
        je    no_error_in_previous_process

        mov   edi,[error_interrupt]
        imul  edi,8
        mov   [edi+tss0i_l +5], word 01010000b *256 +11101001b

        mov   edi,[error_interrupt]
        imul  edi,128
        add   edi,0x290000
        mov   esi,[error_interrupt_entry]
        mov   [edi+l.eip-tss_sceleton],esi
        mov   [edi+l.eflags-tss_sceleton],dword 0x11002

        mov   [0xffff],byte 0

        mov   [error_interrupt],-1

     no_error_in_previous_process:

        mov    edi,[0x3000]
        imul   edi,8
        mov    [edi+gdts+ tss0 +5], word 01010000b *256 +11101001b

        inc   dword [0xfdf0]

        mov   eax,[0xfdf0]
        cmp   eax,[next_usage_update]
        jb    nocounter
        add   eax,100
        mov   [next_usage_update],eax
        call  updatecputimes
      nocounter:

        mov   edi,[0x3010]

        mov   ebx,[edi+0x18]
        call  _rdtsc
        sub   eax,ebx
        add   eax,[edi+0x14]
        mov   [edi+0x14],eax

        mov   ebx,[0x3000]

        cmp   [0xffff],byte 1
        je    do_not_change_task

      waiting_for_termination:
      waiting_for_reuse:

        add   edi,0x20
        inc   ebx

        cmp   [edi+0xa],byte 3
        je    waiting_for_termination
        cmp   [edi+0xa],byte 4
        je    waiting_for_termination
        cmp   [edi+0xa],byte 9
        je    waiting_for_reuse

        cmp   ebx,[0x3004]
        jbe   nsched0
        mov   ebx,1
        mov   edi,0x3020

      nsched0:

        mov   [0x3000],ebx
        mov   [0x3010],edi

      do_not_change_task:

        call  _rdtsc
        mov   [edi+0x18],eax

        cmp   [0xffff],byte 0
        je    nodecffff
        dec   byte [0xffff]
      nodecffff:

        shl   bx,3
        add   bx,tss0
        mov   [tss_s],bx

        mov   al,0x20
        mov   dx,0x20
        out   dx,al

        db    0xea
tss_t   dd    0
tss_s   dw    tss0t

        jmp   irq0

next_usage_update dd 100

change_task:

        mov   [0xffff],byte 2

        dec   dword [0xfdf0]

        int   0x20

        ret

align 4

; GDT TABLE

gdts:

        dw     gdte-$-1
        dd     gdts
        dw     0

os_code_l:

        dw     0xffff
        dw     0x0000
        db     0x00
        dw     11011111b *256 +10011010b
        db     0x00

os_data_l:

        dw     0xffff
        dw     0x0000
        db     0x00
        dw     11011111b *256 +10010010b
        db     0x00

graph_data_l:

        dw     0xff
        dw     0x0000
        db     0x00
        dw     11011111b *256 +11110010b
        db     0x00


ring3_code_l:

        dw     0xffff
        dw     0x0000
        db     0x00
        dw     11011111b *256 +11111010b
        db     0x00

ring3_data_l:

        dw     0xffff
        dw     0x0000
        db     0x00
        dw     11011111b *256 +11110010b
        db     0x00



ring2_code_l:

        dw     0xffff
        dw     0x0000
        db     0x00
        dw     11011111b *256 +11011010b
        db     0x00

ring2_data_l:

        dw     0xffff
        dw     0x0000
        db     0x00
        dw     11011111b *256 +11010010b
        db     0x00



ring1_code_l:

        dw     0xffff
        dw     0x0000
        db     0x00
        dw     11011111b *256 +10111010b
        db     0x00

ring1_data_l:

        dw     0xffff
        dw     0x0000
        db     0x00
        dw     11011111b *256 +10110010b
        db     0x00



int_code_l:

        dw     0xffff
        dw     0x0000
        db     0x00
        dw     11011111b *256 +10011110b
        db     0x00

int_data_l:

        dw     0xffff
        dw     0x0000
        db     0x00
        dw     11011111b *256 +10010010b
        db     0x00

tss0_l:
      times (max_processes+10) dd 0,0

tss0t_l:
      times (max_processes+10) dd 0,0

tss0i_l:
      times (256+10) dd 0,0

app_code_l:
      times (max_processes+10) dd 0,0

app_data_l:
      times (max_processes+10) dd 0,0

tss0sys_l:
      times (max_processes+10) dd 0,0

gdte:


idts:
      dw  idte-$-1
      dd  idts+8
      dw  0

      times 0x62 dd 0,0

idte:

build_process_gdt_tss_pointer:

        mov    ecx,tss_data
        mov    edi,0
      setgdtl2:
        mov    [edi+gdts+ tss0 +0], word tss_step
        mov    [edi+gdts+ tss0 +2], cx
        mov    eax,ecx
        shr    eax,16
        mov    [edi+gdts+ tss0 +4], al
        mov    [edi+gdts+ tss0 +7], ah
        mov    [edi+gdts+ tss0 +5], word 01010000b *256 +11101001b
        add    ecx,tss_step
        add    edi,8
        cmp    edi,8*(max_processes+5)
        jbe    setgdtl2

        ret

build_process_gdt_gate_pointer:

        mov    edi,0
        mov    dx,tss0
      setidtl1:
        mov    ecx,[esi]
        mov    [edi+gdts+ tss0t +0], word 0
        mov    [edi+gdts+ tss0t +2], dx
        mov    [edi+gdts+ tss0t +4], word 11100101b*256
        mov    [edi+gdts+ tss0t +6], word 0
        add    dx,8
        add    edi,8
        cmp    edi,8*(max_processes+5)
        jb     setidtl1

        ret

build_interrupt_table:

        mov  [l.eflags],dword 0x11002
        mov  [l.ss0], int_data
        mov  [l.ss1], ring1_data
        mov  [l.ss2], ring2_data
        mov  [l.esp0], 0x52000
        mov  [l.esp1], 0x53000
        mov  [l.esp2], 0x54000

        mov  eax,cr3
        mov  [l.cr3],eax
        mov  [l.cs],int_code
        mov  [l.ss],int_data
        mov  [l.ds],int_data
        mov  [l.es],int_data
        mov  [l.fs],int_data
        mov  [l.gs],int_data

        mov  eax,sys_int
        mov  [l.esp],0x720000
        mov  edi,0x290000

     newint:
        push edi
        mov  ebx,[eax]
        mov  [l.eip],ebx
        mov  esi,tss_sceleton
        mov  ecx,120/4
        cld
        rep  movsd
        pop  edi

        add  edi,128
        add  [l.esp],1024
        add  eax,4

        cmp  eax,sys_int+4*0x60
        jb   newint

;;

        mov    esi,boot_sched_3_2
        call   boot_log

        mov    ecx,0x290000
        mov    edi,0
      setgdtl2i:
        mov    [edi+gdts+ tss0i +0], word 128
        mov    [edi+gdts+ tss0i +2], cx
        mov    eax,ecx
        shr    eax,16
        mov    [edi+gdts+ tss0i +4], al
        mov    [edi+gdts+ tss0i +7], ah
        mov    [edi+gdts+ tss0i +5], word 01010000b *256 +11101001b
        add    ecx,128
        add    edi,8
        cmp    edi,8*0x60
        jbe    setgdtl2i

;;

        mov    esi,boot_sched_3_3
        call   boot_log

        mov    edi,0
        mov    edx,tss0i
      setidtl2:
        mov    [edi+idts+ 8 +0], word 0
        mov    [edi+idts+ 8 +2], dx
        mov    [edi+idts+ 8 +4], word 10000101b*256
        cmp    edi,0x40*8
        jne    no_sw_int
        mov    [edi+idts+ 8 +4], word 11100101b*256
      no_sw_int:
        mov    [edi+idts+ 8 +6], word 0
        add    edx,8
        add    edi,8

        cmp    edi,8*0x60
        jb     setidtl2

        ret

build_syscall_interrupt_table:

        mov  [l.eflags],dword 0x11002
        mov  [l.ss0], int_data
        mov  [l.ss1], ring1_data
        mov  [l.ss2], ring2_data
        mov  [l.esp0], 0x52000
        mov  [l.esp1], 0x53000
        mov  [l.esp2], 0x54000

        mov  eax,cr3
        mov  [l.cr3],eax
        mov  [l.cs],int_code
        mov  [l.ss],int_data
        mov  [l.ds],int_data
        mov  [l.es],int_data
        mov  [l.fs],int_data
        mov  [l.gs],int_data

        mov  [l.esp],sysint_stack_data
        mov  edi,0x298000

     newint2:
        push edi
        mov  ebx,i40
        mov  [l.eip],ebx
        mov  esi,tss_sceleton
        mov  ecx,120/4
        cld
        rep  movsd
        pop  edi

        add  [l.esp],4096
        add  edi,128
        add  eax,4

        cmp  edi,0x298000+128*(max_processes+5)
        jb   newint2

;;

        mov    ecx,0x298000
        mov    edi,0
      setgdtl2i2:
        mov    [edi+gdts+ tss0sys +0], word 128
        mov    [edi+gdts+ tss0sys +2], cx
        mov    eax,ecx
        shr    eax,16
        mov    [edi+gdts+ tss0sys +4], al
        mov    [edi+gdts+ tss0sys +7], ah
        mov    [edi+gdts+ tss0sys +5], word 01010000b *256 +11101001b
        add    ecx,128
        add    edi,8
        cmp    edi,8*(max_processes+5)
        jbe    setgdtl2i2

;;

        mov    dx,tss0sys
        mov    edi,8*0x40

        mov    [edi+idts+ 8 +0], word 0
        mov    [edi+idts+ 8 +2], dx
        mov    [edi+idts+ 8 +4], word 11100101b*256
        mov    [edi+idts+ 8 +6], word 0

        ret


updatecputimes:

        pusha

        call _rdtsc
        mov  eax,[idleuse]
        mov  [idleusesec],eax
        mov  [idleuse],dword 0
        mov  ecx,[0x3004]
        mov  edi,0x3020
      newupdate:
        mov  ebx,[edi+0x14]
        mov  [edi+0x1c],ebx
        mov  [edi+0x14],dword 0
        add  edi,0x20
        loop newupdate

        popa
        ret


sys_int:

    dd   s0,s1,s2,s3,s4,s5,s6,s7,s8,s9,sa,sb,sc,sd,se,sf

    dd   s10        ,s11        ,i_unknown12,i_unknown13
    dd   i_unknown14,i_unknown15,i_unknown16,i_unknown17
    dd   i_unknown18,i_unknown19,i_unknown1a,i_unknown1b
    dd   i_unknown1c,i_unknown1d,i_unknown1e,i_unknown1f

    dd   irq0  ,irq1  ,p_irq2 ,p_irq3 ,p_irq4 ,p_irq5,p_irq6 ,p_irq7
    dd   p_irq8,p_irq9,p_irq10,p_irq11,p_irq12,irqD  ,p_irq14,p_irq15

    dd   i_unknown30,i_unknown31,i_unknown32,i_unknown33
    dd   i_unknown34,i_unknown35,i_unknown36,i_unknown37
    dd   i_unknown38,i_unknown39,i_unknown3a,i_unknown3b
    dd   i_unknown3c,i_unknown3d,i_unknown3e,i_unknown3f

    dd   i40        ,i_unknown41,i_unknown42,i_unknown43
    dd   i_unknown44,i_unknown45,i_unknown46,i_unknown47
    dd   i_unknown48,i_unknown49,i_unknown4a,i_unknown4b
    dd   i_unknown4c,i_unknown4d,i_unknown4e,i_unknown4f

    dd   i_unknown50,i_unknown51,i_unknown52,i_unknown53
    dd   i_unknown54,i_unknown55,i_unknown56,i_unknown57
    dd   i_unknown58,i_unknown59,i_unknown5a,i_unknown5b
    dd   i_unknown5c,i_unknown5d,i_unknown5e,i_unknown5f

    dd   i_unknown60,i_unknown61,i_unknown62,i_unknown63
    dd   i_unknown64,i_unknown65,i_unknown66,i_unknown67
    dd   i_unknown68,i_unknown69,i_unknown6a,i_unknown6b
    dd   i_unknown6c,i_unknown6d,i_unknown6e,i_unknown6f

    dd   i_unknown70,i_unknown71,i_unknown72,i_unknown73
    dd   i_unknown74,i_unknown75,i_unknown76,i_unknown77
    dd   i_unknown78,i_unknown79,i_unknown7a,i_unknown7b
    dd   i_unknown7c,i_unknown7d,i_unknown7e,i_unknown7f

    dd   i_unknown80,i_unknown81,i_unknown82,i_unknown83
    dd   i_unknown84,i_unknown85,i_unknown86,i_unknown87
    dd   i_unknown88,i_unknown89,i_unknown8a,i_unknown8b
    dd   i_unknown8c,i_unknown8d,i_unknown8e,i_unknown8f

    dd   i_unknown90,i_unknown91,i_unknown92,i_unknown93
    dd   i_unknown94,i_unknown95,i_unknown96,i_unknown97
    dd   i_unknown98,i_unknown99,i_unknown9a,i_unknown9b
    dd   i_unknown9c,i_unknown9d,i_unknown9e,i_unknown9f

    dd   i_unknowna0,i_unknowna1,i_unknowna2,i_unknowna3
    dd   i_unknowna4,i_unknowna5,i_unknowna6,i_unknowna7
    dd   i_unknowna8,i_unknowna9,i_unknownaa,i_unknownab
    dd   i_unknownac,i_unknownad,i_unknownae,i_unknownaf

    dd   i_unknownb0,i_unknownb1,i_unknownb2,i_unknownb3
    dd   i_unknownb4,i_unknownb5,i_unknownb6,i_unknownb7
    dd   i_unknownb8,i_unknownb9,i_unknownba,i_unknownbb
    dd   i_unknownbc,i_unknownbd,i_unknownbe,i_unknownbf

    dd   i_unknownc0,i_unknownc1,i_unknownc2,i_unknownc3
    dd   i_unknownc4,i_unknownc5,i_unknownc6,i_unknownc7
    dd   i_unknownc8,i_unknownc9,i_unknownca,i_unknowncb
    dd   i_unknowncc,i_unknowncd,i_unknownce,i_unknowncf

    dd   i_unknownd0,i_unknownd1,i_unknownd2,i_unknownd3
    dd   i_unknownd4,i_unknownd5,i_unknownd6,i_unknownd7
    dd   i_unknownd8,i_unknownd9,i_unknownda,i_unknowndb
    dd   i_unknowndc,i_unknowndd,i_unknownde,i_unknowndf

    dd   i_unknowne0,i_unknowne1,i_unknowne2,i_unknowne3
    dd   i_unknowne4,i_unknowne5,i_unknowne6,i_unknowne7
    dd   i_unknowne8,i_unknowne9,i_unknownea,i_unknowneb
    dd   i_unknownec,i_unknowned,i_unknownee,i_unknownef

    dd   i_unknownf0,i_unknownf1,i_unknownf2,i_unknownf3
    dd   i_unknownf4,i_unknownf5,i_unknownf6,i_unknownf7
    dd   i_unknownf8,i_unknownf9,i_unknownfa,i_unknownfb
    dd   i_unknownfc,i_unknownfd,i_unknownfe,i_unknownff


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;                                                            ;;
;;                   SYSTEM CALL ENTRY                        ;;
;;                                                            ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

align 4

i40:

      cli

      mov    edi,[0x3000]
      imul   edi,8
      mov    [edi+gdts+ tss0 +5], word 01010000b *256 +11101001b

      mov    eax,[schd]
      mov    [usedi40+eax],byte 1
      push   eax

      mov    edi,[0x3000]
      imul   edi,256
      mov    [edi+0x80000+0xB0],eax

      mov    eax,1  ; search from 1 ( 0 reserved for 'not used' in app )
    search_free_i40:
      cmp    [usedi40+eax],byte 0
      je     found_free_i40
      inc    eax
      cmp    eax,max_processes+10
      jbe    search_free_i40
      jmp    $
    found_free_i40:

      mov    [schd],eax

      mov    edx,8
      imul   edx,[schd]
      add    edx,tss0sys
      mov    edi,8*0x40

      mov    [edi+idts+ 8 +0], word 0
      mov    [edi+idts+ 8 +2], dx
      mov    [edi+idts+ 8 +4], word 11100101b*256
      mov    [edi+idts+ 8 +6], word 0

      mov   ebx,[0x3000]
      shl   ebx,3
      add   ebx,tss0_l

      mov   ecx,[0x3000]
      shl   ecx,2

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产毛片一区二区| 在线免费精品视频| 99久久伊人精品| 91精品国产一区二区三区蜜臀| 久久免费电影网| 亚洲 欧美综合在线网络| av综合在线播放| 久久久www成人免费毛片麻豆| 亚洲国产日韩a在线播放性色| 成人av午夜影院| 欧美成人三级在线| 亚洲第一精品在线| 91国偷自产一区二区三区成为亚洲经典| 精品国产免费人成电影在线观看四季 | 日本不卡中文字幕| 色av综合在线| 亚洲视频在线一区| 成人国产精品免费观看| 国产欧美日韩精品一区| 韩国成人精品a∨在线观看| 欧美一级夜夜爽| 日本不卡在线视频| 欧美一区二区国产| 久热成人在线视频| 91精品国产aⅴ一区二区| 亚洲国产精品一区二区久久恐怖片| av中文字幕亚洲| 亚洲色图欧美偷拍| 色综合久久综合| 亚洲欧美日韩国产一区二区三区| 国产精品99精品久久免费| 亚洲精品一区二区三区精华液| 成人国产在线观看| 国产精品久久久久久久久免费相片| 国产一区三区三区| 久久综合九色综合97婷婷女人| 久久精品国产99| 日韩免费一区二区三区在线播放| 蜜臀久久99精品久久久久久9 | 久久久亚洲午夜电影| 精品一区二区影视| 国产亚洲精品aa午夜观看| 懂色av中文一区二区三区| 国产清纯美女被跳蛋高潮一区二区久久w | 亚洲v日本v欧美v久久精品| 欧美伊人久久久久久久久影院 | 国产欧美精品一区| 成人午夜激情在线| 亚洲免费成人av| 欧美日韩视频在线一区二区| 日本系列欧美系列| 久久久激情视频| 色哟哟国产精品| 性久久久久久久久| 久久综合色鬼综合色| eeuss鲁片一区二区三区| 亚洲愉拍自拍另类高清精品| 欧美成人性战久久| 91猫先生在线| 久久国产尿小便嘘嘘尿| 国产精品欧美一区喷水| 日本乱人伦aⅴ精品| 麻豆专区一区二区三区四区五区| 亚洲国产精品成人综合| 欧美日韩一级视频| 国产激情精品久久久第一区二区| 亚洲人成网站影音先锋播放| 91精品国产综合久久婷婷香蕉| 国产一区二区精品久久99| 亚洲精品久久嫩草网站秘色| 亚洲日穴在线视频| 日韩色视频在线观看| 成人综合日日夜夜| 视频一区二区国产| 中文一区一区三区高中清不卡| 欧美性色综合网| 粉嫩aⅴ一区二区三区四区五区| 亚洲大尺度视频在线观看| 欧美激情资源网| 日韩欧美黄色影院| 精品视频一区二区不卡| 高潮精品一区videoshd| 日韩黄色在线观看| 一区二区三区国产精品| 久久久久久麻豆| 欧美精品乱码久久久久久按摩| 成人av动漫网站| 韩国一区二区视频| 日韩av电影天堂| 一区二区三区四区在线| 国产精品久久久久永久免费观看 | 免费成人在线观看| 樱桃国产成人精品视频| 欧美国产综合色视频| 91精品国产福利在线观看| 在线亚洲精品福利网址导航| 成人性生交大合| 国产真实乱对白精彩久久| 亚洲午夜电影网| 亚洲精品中文在线| 中文字幕色av一区二区三区| 国产夜色精品一区二区av| 精品对白一区国产伦| 日韩一区二区电影| 中文字幕在线不卡| 亚洲国产精品av| 欧美激情一二三区| 国产欧美精品在线观看| 国产偷v国产偷v亚洲高清| 久久女同性恋中文字幕| 日韩美一区二区三区| 欧美精品在线观看播放| 欧美日韩精品一区二区三区| 欧美影院精品一区| 欧美性大战久久| 7777精品伊人久久久大香线蕉的| 欧美日韩国产大片| 欧美日韩精品三区| 欧美一区二区三区白人| 欧美一级搡bbbb搡bbbb| 精品日韩一区二区| 久久亚洲精精品中文字幕早川悠里| 精品黑人一区二区三区久久| 欧美成人一区二区三区片免费 | 国产真实乱子伦精品视频| 国产最新精品免费| 丁香桃色午夜亚洲一区二区三区| 国产福利一区二区三区视频 | √…a在线天堂一区| 亚洲激情图片一区| 舔着乳尖日韩一区| 激情综合网激情| 波多野洁衣一区| 在线观看亚洲成人| 欧美日韩高清影院| 久久九九99视频| 亚洲免费大片在线观看| 美腿丝袜亚洲一区| 懂色av噜噜一区二区三区av| 91视频观看免费| 欧美久久免费观看| 久久久一区二区三区| 一区二区三区四区视频精品免费| 日韩精品成人一区二区三区| 国产精品538一区二区在线| 91亚洲永久精品| 日韩欧美亚洲一区二区| 亚洲色图在线播放| 久久国产精品免费| 99久久精品费精品国产一区二区| 欧美疯狂做受xxxx富婆| 久久精品欧美日韩精品| 亚洲综合色自拍一区| 激情欧美一区二区三区在线观看| 91啪亚洲精品| 亚洲成人av在线电影| 狠狠狠色丁香婷婷综合久久五月| 色婷婷综合久久久久中文一区二区 | 香蕉av福利精品导航| 国产露脸91国语对白| 欧美日韩激情一区二区| 国产精品青草综合久久久久99| 亚洲成人免费在线观看| 成人黄色在线网站| 精品日本一线二线三线不卡| 亚洲男帅同性gay1069| 国产一区二区三区| 欧美三级韩国三级日本三斤| 国产精品久久午夜夜伦鲁鲁| 免费观看成人av| 欧美日韩一二三| 亚洲同性同志一二三专区| 国产一区三区三区| 欧美一级午夜免费电影| 亚洲bdsm女犯bdsm网站| 95精品视频在线| 中文一区在线播放| 国产精品亚洲视频| 日韩精品一区二区三区四区| 亚洲一级电影视频| 99re8在线精品视频免费播放| 精品国产伦一区二区三区观看方式| 亚洲国产一区视频| 91成人网在线| 首页亚洲欧美制服丝腿| 欧美在线视频你懂得| 日韩美女精品在线| 国产福利一区在线| 久久精品日产第一区二区三区高清版| 亚洲成人你懂的| 精品视频一区二区三区免费| 亚洲高清不卡在线观看| 91高清视频在线| 一区二区三区日韩精品| 色综合久久综合网欧美综合网| 国产精品国产三级国产有无不卡 | 久久国产夜色精品鲁鲁99| 3d成人h动漫网站入口| 日韩中文字幕亚洲一区二区va在线| 欧美综合欧美视频|