亚洲欧美第一页_禁久久精品乱码_粉嫩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久久久久久久女警 | 亚洲午夜成aⅴ人片| 91黄色免费版| 日韩av中文字幕一区二区三区| 欧美一区二区三区免费视频| 日韩av一二三| 精品人在线二区三区| 国产精品一区在线观看你懂的| 国产精品三级av在线播放| 色综合天天视频在线观看| 免费在线欧美视频| 久久久久国产精品麻豆ai换脸| 成人高清视频在线| 一区二区三区不卡在线观看 | 日韩亚洲欧美高清| 国产一区二区三区精品欧美日韩一区二区三区 | 欧美日韩国产精品成人| 美日韩一区二区| 国产精品美女久久久久久久久 | 麻豆成人在线观看| 欧美国产成人精品| 精品视频1区2区| 国产河南妇女毛片精品久久久| 综合久久久久综合| 欧美成人乱码一区二区三区| 成人免费看视频| 男人的j进女人的j一区| 亚洲高清久久久| 久久美女高清视频| 欧美亚洲综合一区| 国产精品资源站在线| 亚洲一区二区高清| 国产婷婷色一区二区三区四区 | 欧美精选在线播放| 成人黄色电影在线| 日本一区中文字幕| 亚洲免费在线电影| 日韩精品一区二区三区老鸭窝| 91美女片黄在线观看| 国产乱子轮精品视频| 亚洲午夜久久久久中文字幕久| 久久先锋资源网| 欧美狂野另类xxxxoooo| www.成人在线| 国产乱码精品一区二区三| 亚洲国产日韩一级| 亚洲欧洲av一区二区三区久久| 欧美成人国产一区二区| 在线观看免费一区| 99久精品国产| 粉嫩一区二区三区在线看| 日本中文字幕一区二区视频| 亚洲伊人色欲综合网| 国产精品色呦呦| 精品国产1区2区3区| 91精品国产高清一区二区三区蜜臀 | 国产成人精品一区二| 日韩有码一区二区三区| 亚洲精品视频在线观看网站| 欧美国产综合色视频| 亚洲精品一区二区三区香蕉| 欧美二区在线观看| 欧美日韩日日摸| 欧洲精品视频在线观看| 色一情一乱一乱一91av| 精品久久国产老人久久综合| 在线播放中文一区| 欧美日本国产一区| 欧美日韩免费视频| 色爱区综合激月婷婷| 在线视频观看一区| 欧美日韩久久一区| 欧美男男青年gay1069videost| 欧美体内she精高潮| 91成人在线免费观看| 色噜噜夜夜夜综合网| 91麻豆精品视频| 色哟哟日韩精品| 91极品美女在线| 欧美日韩国产首页在线观看| 7777女厕盗摄久久久| 欧美夫妻性生活| 91精品免费观看| 日韩三级免费观看| 久久夜色精品国产噜噜av| 久久人人97超碰com| 国产欧美精品一区二区色综合朱莉| 国产亚洲一区二区三区四区| 中文字幕欧美三区| 综合电影一区二区三区| 亚洲伦理在线免费看| 亚洲国产精品影院| 久久精品国产秦先生| 国产麻豆欧美日韩一区| 成人h动漫精品一区二| 色哟哟一区二区| 欧美一级爆毛片| 国产欧美日韩三级| 亚洲人成小说网站色在线| 亚洲成人你懂的| 国产一区二区三区精品视频| www.av精品| 欧美一级黄色片| 国产精品护士白丝一区av| 午夜伦欧美伦电影理论片| 久久99国产精品成人| 99久久久久免费精品国产| 欧美中文字幕一区| 精品国产乱码久久久久久1区2区| 欧美国产日韩a欧美在线观看| 亚洲欧美日韩在线| 奇米亚洲午夜久久精品| 东方aⅴ免费观看久久av| 在线精品视频一区二区三四| 欧美成人一区二区三区在线观看| 中文无字幕一区二区三区| 一区二区三区欧美日| 美女www一区二区| 日本精品免费观看高清观看| 日韩欧美另类在线| 亚洲人123区| 久久国产精品露脸对白| 在线视频中文字幕一区二区| www欧美成人18+| 偷拍一区二区三区四区| 99久久亚洲一区二区三区青草 | 99精品视频一区| 国产精品拍天天在线| 日韩精品高清不卡| 色呦呦国产精品| 久久精品在线观看| 奇米777欧美一区二区| 色婷婷精品久久二区二区蜜臀av | 成人一级片在线观看| 欧美一区二区二区| 亚洲一区视频在线观看视频| 国产中文字幕精品| 欧美一区二区三区在线视频| 国产精品久久久一本精品 | 激情五月激情综合网| 欧美色图天堂网| 自拍偷拍欧美精品| 国产成人啪午夜精品网站男同| 欧美精品丝袜中出| 亚洲激情在线播放| 成人精品电影在线观看| 久久人人97超碰com| 毛片一区二区三区| 欧美日本在线看| 亚洲国产一区二区a毛片| 99精品久久免费看蜜臀剧情介绍| 久久午夜老司机| 精品系列免费在线观看| 5月丁香婷婷综合| 亚洲一区二区三区中文字幕| 不卡视频一二三四| 欧美激情综合五月色丁香| 国产精品资源网| 日本一区二区三区视频视频| 国内精品伊人久久久久影院对白| 欧美一级电影网站| 免费三级欧美电影| 欧美一级久久久久久久大片| 日韩福利视频网| 日韩精品一区二区三区swag| 麻豆精品国产传媒mv男同| 91精品国产色综合久久ai换脸 | 国产喷白浆一区二区三区| 国产资源精品在线观看| 2021国产精品久久精品| 韩国欧美国产一区| 欧美国产精品v| 波多野结衣中文字幕一区| 国产精品白丝在线| 91毛片在线观看| 亚洲国产欧美在线| 欧美人与性动xxxx| 久久福利视频一区二区| 久久久另类综合| 99精品国产视频| 亚洲最大色网站| 制服视频三区第一页精品| 青青国产91久久久久久| 欧美精品一区二区三| 高清国产一区二区| 曰韩精品一区二区| 欧美久久久久中文字幕| 九一久久久久久| 欧美韩日一区二区三区| 色播五月激情综合网| 美女在线一区二区| 国产精品美女一区二区在线观看| 一本大道综合伊人精品热热 | 91免费观看视频|