日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【OS学习笔记】三十八 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----微型内核汇代码

發(fā)布時(shí)間:2023/12/10 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【OS学习笔记】三十八 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----微型内核汇代码 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文是以下幾篇文章對(duì)應(yīng)的微型內(nèi)核代碼匯編代碼:

  • 【OS學(xué)習(xí)筆記】三十四 保護(hù)模式十:中斷和異常區(qū)別
  • 【OS學(xué)習(xí)筆記】三十五 保護(hù)模式十:中斷描述符表、中斷門(mén)和陷阱門(mén)
  • 【OS學(xué)習(xí)筆記】三十六 保護(hù)模式十:通過(guò)中斷發(fā)起任務(wù)切換----中斷任務(wù)
;代碼清單17-2;文件名:c17_core.asm;文件說(shuō)明:保護(hù)模式微型核心程序 ;創(chuàng)建日期:2012-07-12 23:15 ;-------------------------------------------------------------------------------;以下定義常量flat_4gb_code_seg_sel equ 0x0008 ;平坦模型下的4GB代碼段選擇子 flat_4gb_data_seg_sel equ 0x0018 ;平坦模型下的4GB數(shù)據(jù)段選擇子 idt_linear_address equ 0x8001f000 ;中斷描述符表的線性基地址 ;------------------------------------------------------------------------------- ;以下定義宏%macro alloc_core_linear 0 ;在內(nèi)核空間中分配虛擬內(nèi)存 mov ebx,[core_tcb+0x06]add dword [core_tcb+0x06],0x1000call flat_4gb_code_seg_sel:alloc_inst_a_page%endmacro ;-------------------------------------------------------------------------------%macro alloc_user_linear 0 ;在任務(wù)空間中分配虛擬內(nèi)存 mov ebx,[esi+0x06]add dword [esi+0x06],0x1000call flat_4gb_code_seg_sel:alloc_inst_a_page%endmacro;=============================================================================== SECTION core vstart=0x80040000;以下是系統(tǒng)核心的頭部,用于加載核心程序 core_length dd core_end ;核心程序總長(zhǎng)度#00core_entry dd start ;核心代碼段入口點(diǎn)#04;-------------------------------------------------------------------------------[bits 32] ;-------------------------------------------------------------------------------;字符串顯示例程(適用于平坦內(nèi)存模型) put_string: ;顯示0終止的字符串并移動(dòng)光標(biāo) ;輸入:EBX=字符串的線性地址push ebxpush ecxcli ;硬件操作期間,關(guān)中斷.getc:mov cl,[ebx]or cl,cl ;檢測(cè)串結(jié)束標(biāo)志(0) jz .exit ;顯示完畢,返回 call put_charinc ebxjmp .getc.exit:sti ;硬件操作完畢,開(kāi)放中斷pop ecxpop ebxretf ;段間返回;------------------------------------------------------------------------------- put_char: ;在當(dāng)前光標(biāo)處顯示一個(gè)字符,并推進(jìn);光標(biāo)。僅用于段內(nèi)調(diào)用 ;輸入:CL=字符ASCII碼 pushad;以下取當(dāng)前光標(biāo)位置mov dx,0x3d4mov al,0x0eout dx,alinc dx ;0x3d5in al,dx ;高字mov ah,aldec dx ;0x3d4mov al,0x0fout dx,alinc dx ;0x3d5in al,dx ;低字mov bx,ax ;BX=代表光標(biāo)位置的16位數(shù)and ebx,0x0000ffff ;準(zhǔn)備使用32位尋址方式訪問(wèn)顯存 cmp cl,0x0d ;回車(chē)符?jnz .put_0a mov ax,bx ;以下按回車(chē)符處理 mov bl,80div blmul blmov bx,axjmp .set_cursor.put_0a:cmp cl,0x0a ;換行符?jnz .put_otheradd bx,80 ;增加一行 jmp .roll_screen.put_other: ;正常顯示字符shl bx,1mov [0x800b8000+ebx],cl ;在光標(biāo)位置處顯示字符 ;以下將光標(biāo)位置推進(jìn)一個(gè)字符shr bx,1inc bx.roll_screen:cmp bx,2000 ;光標(biāo)超出屏幕?滾屏jl .set_cursorcldmov esi,0x800b80a0 ;小心!32位模式下movsb/w/d mov edi,0x800b8000 ;使用的是esi/edi/ecx mov ecx,1920rep movsdmov bx,3840 ;清除屏幕最底一行mov ecx,80 ;32位程序應(yīng)該使用ECX.cls:mov word [0x800b8000+ebx],0x0720add bx,2loop .clsmov bx,1920.set_cursor:mov dx,0x3d4mov al,0x0eout dx,alinc dx ;0x3d5mov al,bhout dx,aldec dx ;0x3d4mov al,0x0fout dx,alinc dx ;0x3d5mov al,blout dx,alpopadret ;------------------------------------------------------------------------------- read_hard_disk_0: ;從硬盤(pán)讀取一個(gè)邏輯扇區(qū)(平坦模型) ;EAX=邏輯扇區(qū)號(hào);EBX=目標(biāo)緩沖區(qū)線性地址;返回:EBX=EBX+512clipush eax push ecxpush edxpush eaxmov dx,0x1f2mov al,1out dx,al ;讀取的扇區(qū)數(shù)inc dx ;0x1f3pop eaxout dx,al ;LBA地址7~0inc dx ;0x1f4mov cl,8shr eax,clout dx,al ;LBA地址15~8inc dx ;0x1f5shr eax,clout dx,al ;LBA地址23~16inc dx ;0x1f6shr eax,clor al,0xe0 ;第一硬盤(pán) LBA地址27~24out dx,alinc dx ;0x1f7mov al,0x20 ;讀命令out dx,al.waits:in al,dxand al,0x88cmp al,0x08jnz .waits ;不忙,且硬盤(pán)已準(zhǔn)備好數(shù)據(jù)傳輸 mov ecx,256 ;總共要讀取的字?jǐn)?shù)mov dx,0x1f0.readw:in ax,dxmov [ebx],axadd ebx,2loop .readwpop edxpop ecxpop eaxstiretf ;遠(yuǎn)返回 ;------------------------------------------------------------------------------- ;匯編語(yǔ)言程序是極難一次成功,而且調(diào)試非常困難。這個(gè)例程可以提供幫助 put_hex_dword: ;在當(dāng)前光標(biāo)處以十六進(jìn)制形式顯示;一個(gè)雙字并推進(jìn)光標(biāo) ;輸入:EDX=要轉(zhuǎn)換并顯示的數(shù)字;輸出:無(wú)pushadmov ebx,bin_hex ;指向核心地址空間內(nèi)的轉(zhuǎn)換表mov ecx,8.xlt: rol edx,4mov eax,edxand eax,0x0000000fxlatpush ecxmov cl,al call put_charpop ecxloop .xltpopadretf;------------------------------------------------------------------------------- set_up_gdt_descriptor: ;在GDT內(nèi)安裝一個(gè)新的描述符;輸入:EDX:EAX=描述符 ;輸出:CX=描述符的選擇子push eaxpush ebxpush edxsgdt [pgdt] ;取得GDTR的界限和線性地址 movzx ebx,word [pgdt] ;GDT界限inc bx ;GDT總字節(jié)數(shù),也是下一個(gè)描述符偏移add ebx,[pgdt+2] ;下一個(gè)描述符的線性地址mov [ebx],eaxmov [ebx+4],edxadd word [pgdt],8 ;增加一個(gè)描述符的大小lgdt [pgdt] ;對(duì)GDT的更改生效mov ax,[pgdt] ;得到GDT界限值xor dx,dxmov bx,8div bx ;除以8,去掉余數(shù)mov cx,axshl cx,3 ;將索引號(hào)移到正確位置pop edxpop ebxpop eaxretf ;------------------------------------------------------------------------------- make_seg_descriptor: ;構(gòu)造存儲(chǔ)器和系統(tǒng)的段描述符;輸入:EAX=線性基地址; EBX=段界限; ECX=屬性。各屬性位都在原始; 位置,無(wú)關(guān)的位清零 ;返回:EDX:EAX=描述符mov edx,eaxshl eax,16or ax,bx ;描述符前32(EAX)構(gòu)造完畢and edx,0xffff0000 ;清除基地址中無(wú)關(guān)的位rol edx,8bswap edx ;裝配基址的31~2423~16 (80486+)xor bx,bxor edx,ebx ;裝配段界限的高4位or edx,ecx ;裝配屬性retf;------------------------------------------------------------------------------- make_gate_descriptor: ;構(gòu)造門(mén)的描述符(調(diào)用門(mén)等);輸入:EAX=門(mén)代碼在段內(nèi)偏移地址; BX=門(mén)代碼所在段的選擇子 ; CX=段類(lèi)型及屬性等(各屬; 性位都在原始位置);返回:EDX:EAX=完整的描述符push ebxpush ecxmov edx,eaxand edx,0xffff0000 ;得到偏移地址高16位 or dx,cx ;組裝屬性部分到EDXand eax,0x0000ffff ;得到偏移地址低16位 shl ebx,16 or eax,ebx ;組裝段選擇子部分pop ecxpop ebxretf ;------------------------------------------------------------------------------- allocate_a_4k_page: ;分配一個(gè)4KB的頁(yè);輸入:無(wú);輸出:EAX=頁(yè)的物理地址push ebxpush ecxpush edxxor eax,eax.b1:bts [page_bit_map],eaxjnc .b2inc eaxcmp eax,page_map_len*8jl .b1mov ebx,message_3call flat_4gb_code_seg_sel:put_stringhlt ;沒(méi)有可以分配的頁(yè),停機(jī) .b2:shl eax,12 ;乘以40960x1000) pop edxpop ecxpop ebxret;------------------------------------------------------------------------------- alloc_inst_a_page: ;分配一個(gè)頁(yè),并安裝在當(dāng)前活動(dòng)的;層級(jí)分頁(yè)結(jié)構(gòu)中;輸入:EBX=頁(yè)的線性地址push eaxpush ebxpush esi;檢查該線性地址所對(duì)應(yīng)的頁(yè)表是否存在mov esi,ebxand esi,0xffc00000shr esi,20 ;得到頁(yè)目錄索引,并乘以4 or esi,0xfffff000 ;頁(yè)目錄自身的線性地址+表內(nèi)偏移 test dword [esi],0x00000001 ;P位是否為“1”。檢查該線性地址是 jnz .b1 ;否已經(jīng)有對(duì)應(yīng)的頁(yè)表;創(chuàng)建該線性地址所對(duì)應(yīng)的頁(yè)表 call allocate_a_4k_page ;分配一個(gè)頁(yè)做為頁(yè)表 or eax,0x00000007mov [esi],eax ;在頁(yè)目錄中登記該頁(yè)表.b1:;開(kāi)始訪問(wèn)該線性地址所對(duì)應(yīng)的頁(yè)表 mov esi,ebxshr esi,10and esi,0x003ff000 ;或者0xfffff000,因高10位是零 or esi,0xffc00000 ;得到該頁(yè)表的線性地址;得到該線性地址在頁(yè)表內(nèi)的對(duì)應(yīng)條目(頁(yè)表項(xiàng)) and ebx,0x003ff000shr ebx,10 ;相當(dāng)于右移12位,再乘以4or esi,ebx ;頁(yè)表項(xiàng)的線性地址 call allocate_a_4k_page ;分配一個(gè)頁(yè),這才是要安裝的頁(yè)or eax,0x00000007mov [esi],eax pop esipop ebxpop eaxretf ;------------------------------------------------------------------------------- create_copy_cur_pdir: ;創(chuàng)建新頁(yè)目錄,并復(fù)制當(dāng)前頁(yè)目錄內(nèi)容;輸入:無(wú);輸出:EAX=新頁(yè)目錄的物理地址 push esipush edipush ebxpush ecxcall allocate_a_4k_page mov ebx,eaxor ebx,0x00000007mov [0xfffffff8],ebxinvlpg [0xfffffff8]mov esi,0xfffff000 ;ESI->當(dāng)前頁(yè)目錄的線性地址mov edi,0xffffe000 ;EDI->新頁(yè)目錄的線性地址mov ecx,1024 ;ECX=要復(fù)制的目錄項(xiàng)數(shù)cldrepe movsd pop ecxpop ebxpop edipop esiretf;------------------------------------------------------------------------------- general_interrupt_handler: ;通用的中斷處理過(guò)程push eaxmov al,0x20 ;中斷結(jié)束命令EOI out 0xa0,al ;向從片發(fā)送 out 0x20,al ;向主片發(fā)送pop eaxiretd;------------------------------------------------------------------------------- general_exception_handler: ;通用的異常處理過(guò)程mov ebx,excep_msgcall flat_4gb_code_seg_sel:put_stringhlt;------------------------------------------------------------------------------- rtm_0x70_interrupt_handle: ;實(shí)時(shí)時(shí)鐘中斷處理過(guò)程pushadmov al,0x20 ;中斷結(jié)束命令EOIout 0xa0,al ;8259A從片發(fā)送out 0x20,al ;8259A主片發(fā)送mov al,0x0c ;寄存器C的索引。且開(kāi)放NMIout 0x70,alin al,0x71 ;讀一下RTC的寄存器C,否則只發(fā)生一次中斷;此處不考慮鬧鐘和周期性中斷的情況;找當(dāng)前任務(wù)(狀態(tài)為忙的任務(wù))在鏈表中的位置mov eax,tcb_chain .b0: ;EAX=鏈表頭或當(dāng)前TCB線性地址mov ebx,[eax] ;EBX=下一個(gè)TCB線性地址or ebx,ebxjz .irtn ;鏈表為空,或已到末尾,從中斷返回cmp word [ebx+0x04],0xffff ;是忙任務(wù)(當(dāng)前任務(wù))?je .b1mov eax,ebx ;定位到下一個(gè)TCB(的線性地址)jmp .b0 ;將當(dāng)前為忙的任務(wù)移到鏈尾.b1:mov ecx,[ebx] ;下游TCB的線性地址mov [eax],ecx ;將當(dāng)前任務(wù)從鏈中拆除.b2: ;此時(shí),EBX=當(dāng)前任務(wù)的線性地址mov edx,[eax]or edx,edx ;已到鏈表尾端?jz .b3mov eax,edxjmp .b2.b3:mov [eax],ebx ;將忙任務(wù)的TCB掛在鏈表尾端mov dword [ebx],0x00000000 ;將忙任務(wù)的TCB標(biāo)記為鏈尾;從鏈?zhǔn)姿阉鞯谝粋€(gè)空閑任務(wù)mov eax,tcb_chain.b4:mov eax,[eax]or eax,eax ;已到鏈尾(未發(fā)現(xiàn)空閑任務(wù))jz .irtn ;未發(fā)現(xiàn)空閑任務(wù),從中斷返回cmp word [eax+0x04],0x0000 ;是空閑任務(wù)?jnz .b4;將空閑任務(wù)和當(dāng)前任務(wù)的狀態(tài)都取反not word [eax+0x04] ;設(shè)置空閑任務(wù)的狀態(tài)為忙not word [ebx+0x04] ;設(shè)置當(dāng)前任務(wù)(忙)的狀態(tài)為空閑jmp far [eax+0x14] ;任務(wù)轉(zhuǎn)換.irtn:popadiretd;------------------------------------------------------------------------------- terminate_current_task: ;終止當(dāng)前任務(wù);注意,執(zhí)行此例程時(shí),當(dāng)前任務(wù)仍在;運(yùn)行中。此例程其實(shí)也是當(dāng)前任務(wù)的;一部分 ;找當(dāng)前任務(wù)(狀態(tài)為忙的任務(wù))在鏈表中的位置mov eax,tcb_chain.b0: ;EAX=鏈表頭或當(dāng)前TCB線性地址mov ebx,[eax] ;EBX=下一個(gè)TCB線性地址cmp word [ebx+0x04],0xffff ;是忙任務(wù)(當(dāng)前任務(wù))?je .b1mov eax,ebx ;定位到下一個(gè)TCB(的線性地址)jmp .b0.b1:mov word [ebx+0x04],0x3333 ;修改當(dāng)前任務(wù)的狀態(tài)為“退出”.b2:hlt ;停機(jī),等待程序管理器恢復(fù)運(yùn)行時(shí),;將其回收 jmp .b2 ;------------------------------------------------------------------------------- pgdt dw 0 ;用于設(shè)置和修改GDT dd 0pidt dw 0dd 0;任務(wù)控制塊鏈tcb_chain dd 0 core_tcb times 32 db 0 ;內(nèi)核(程序管理器)的TCBpage_bit_map db 0xff,0xff,0xff,0xff,0xff,0xff,0x55,0x55db 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xffdb 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xffdb 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xffdb 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00page_map_len equ $-page_bit_map;符號(hào)地址檢索表salt:salt_1 db '@PrintString'times 256-($-salt_1) db 0dd put_stringdw flat_4gb_code_seg_selsalt_2 db '@ReadDiskData'times 256-($-salt_2) db 0dd read_hard_disk_0dw flat_4gb_code_seg_selsalt_3 db '@PrintDwordAsHexString'times 256-($-salt_3) db 0dd put_hex_dworddw flat_4gb_code_seg_selsalt_4 db '@TerminateProgram'times 256-($-salt_4) db 0dd terminate_current_taskdw flat_4gb_code_seg_selsalt_item_len equ $-salt_4salt_items equ ($-salt)/salt_item_lenexcep_msg db '********Exception encounted********',0message_0 db ' Working in system core with protection 'db 'and paging are all enabled.System core is mapped 'db 'to address 0x80000000.',0x0d,0x0a,0message_1 db ' System wide CALL-GATE mounted.',0x0d,0x0a,0message_3 db '********No more pages********',0core_msg0 db ' System core task running!',0x0d,0x0a,0bin_hex db '0123456789ABCDEF';put_hex_dword子過(guò)程用的查找表 core_buf times 512 db 0 ;內(nèi)核用的緩沖區(qū)cpu_brnd0 db 0x0d,0x0a,' ',0cpu_brand times 52 db 0cpu_brnd1 db 0x0d,0x0a,0x0d,0x0a,0;------------------------------------------------------------------------------- fill_descriptor_in_ldt: ;在LDT內(nèi)安裝一個(gè)新的描述符;輸入:EDX:EAX=描述符; EBX=TCB基地址;輸出:CX=描述符的選擇子push eaxpush edxpush edimov edi,[ebx+0x0c] ;獲得LDT基地址xor ecx,ecxmov cx,[ebx+0x0a] ;獲得LDT界限inc cx ;LDT的總字節(jié)數(shù),即新描述符偏移地址mov [edi+ecx+0x00],eaxmov [edi+ecx+0x04],edx ;安裝描述符add cx,8 dec cx ;得到新的LDT界限值 mov [ebx+0x0a],cx ;更新LDT界限值到TCBmov ax,cxxor dx,dxmov cx,8div cxmov cx,axshl cx,3 ;左移3位,并且or cx,0000_0000_0000_0100B ;使TI位=1,指向LDT,最后使RPL=00 pop edipop edxpop eaxret;------------------------------------------------------------------------------- load_relocate_program: ;加載并重定位用戶程序;輸入: PUSH 邏輯扇區(qū)號(hào); PUSH 任務(wù)控制塊基地址;輸出:無(wú) pushadmov ebp,esp ;為訪問(wèn)通過(guò)堆棧傳遞的參數(shù)做準(zhǔn)備;清空當(dāng)前頁(yè)目錄的前半部分(對(duì)應(yīng)低2GB的局部地址空間) mov ebx,0xfffff000xor esi,esi.b1:mov dword [ebx+esi*4],0x00000000inc esicmp esi,512jl .b1mov eax,cr3mov cr3,eax ;刷新TLB ;以下開(kāi)始分配內(nèi)存并加載用戶程序mov eax,[ebp+40] ;從堆棧中取出用戶程序起始扇區(qū)號(hào)mov ebx,core_buf ;讀取程序頭部數(shù)據(jù)call flat_4gb_code_seg_sel:read_hard_disk_0;以下判斷整個(gè)程序有多大mov eax,[core_buf] ;程序尺寸mov ebx,eaxand ebx,0xfffff000 ;使之4KB對(duì)齊 add ebx,0x1000 test eax,0x00000fff ;程序的大小正好是4KB的倍數(shù)嗎? cmovnz eax,ebx ;不是。使用湊整的結(jié)果mov ecx,eaxshr ecx,12 ;程序占用的總4KB頁(yè)數(shù) mov eax,[ebp+40] ;起始扇區(qū)號(hào)mov esi,[ebp+36] ;從堆棧中取得TCB的基地址.b2:alloc_user_linear ;宏:在用戶任務(wù)地址空間上分配內(nèi)存 push ecxmov ecx,8.b3:call flat_4gb_code_seg_sel:read_hard_disk_0 inc eaxloop .b3pop ecxloop .b2;在內(nèi)核地址空間內(nèi)創(chuàng)建用戶任務(wù)的TSSalloc_core_linear ;宏:在內(nèi)核的地址空間上分配內(nèi)存;用戶任務(wù)的TSS必須在全局空間上分配 mov [esi+0x14],ebx ;在TCB中填寫(xiě)TSS的線性地址 mov word [esi+0x12],103 ;在TCB中填寫(xiě)TSS的界限值 ;在用戶任務(wù)的局部地址空間內(nèi)創(chuàng)建LDT alloc_user_linear ;宏:在用戶任務(wù)地址空間上分配內(nèi)存mov [esi+0x0c],ebx ;填寫(xiě)LDT線性地址到TCB中 ;建立程序代碼段描述符mov eax,0x00000000mov ebx,0x000fffff mov ecx,0x00c0f800 ;4KB粒度的代碼段描述符,特權(quán)級(jí)3call flat_4gb_code_seg_sel:make_seg_descriptormov ebx,esi ;TCB的基地址call fill_descriptor_in_ldtor cx,0000_0000_0000_0011B ;設(shè)置選擇子的特權(quán)級(jí)為3mov ebx,[esi+0x14] ;從TCB中獲取TSS的線性地址mov [ebx+76],cx ;填寫(xiě)TSS的CS域 ;建立程序數(shù)據(jù)段描述符mov eax,0x00000000mov ebx,0x000fffff mov ecx,0x00c0f200 ;4KB粒度的數(shù)據(jù)段描述符,特權(quán)級(jí)3call flat_4gb_code_seg_sel:make_seg_descriptormov ebx,esi ;TCB的基地址call fill_descriptor_in_ldtor cx,0000_0000_0000_0011B ;設(shè)置選擇子的特權(quán)級(jí)為3mov ebx,[esi+0x14] ;從TCB中獲取TSS的線性地址mov [ebx+84],cx ;填寫(xiě)TSS的DS域 mov [ebx+72],cx ;填寫(xiě)TSS的ES域mov [ebx+88],cx ;填寫(xiě)TSS的FS域mov [ebx+92],cx ;填寫(xiě)TSS的GS域;將數(shù)據(jù)段作為用戶任務(wù)的3特權(quán)級(jí)固有堆棧 alloc_user_linear ;宏:在用戶任務(wù)地址空間上分配內(nèi)存mov ebx,[esi+0x14] ;從TCB中獲取TSS的線性地址mov [ebx+80],cx ;填寫(xiě)TSS的SS域mov edx,[esi+0x06] ;堆棧的高端線性地址 mov [ebx+56],edx ;填寫(xiě)TSS的ESP域 ;在用戶任務(wù)的局部地址空間內(nèi)創(chuàng)建0特權(quán)級(jí)堆棧alloc_user_linear ;宏:在用戶任務(wù)地址空間上分配內(nèi)存mov eax,0x00000000mov ebx,0x000fffffmov ecx,0x00c09200 ;4KB粒度的堆棧段描述符,特權(quán)級(jí)0call flat_4gb_code_seg_sel:make_seg_descriptormov ebx,esi ;TCB的基地址call fill_descriptor_in_ldtor cx,0000_0000_0000_0000B ;設(shè)置選擇子的特權(quán)級(jí)為0mov ebx,[esi+0x14] ;從TCB中獲取TSS的線性地址mov [ebx+8],cx ;填寫(xiě)TSS的SS0域mov edx,[esi+0x06] ;堆棧的高端線性地址mov [ebx+4],edx ;填寫(xiě)TSS的ESP0域 ;在用戶任務(wù)的局部地址空間內(nèi)創(chuàng)建1特權(quán)級(jí)堆棧alloc_user_linear ;宏:在用戶任務(wù)地址空間上分配內(nèi)存mov eax,0x00000000mov ebx,0x000fffffmov ecx,0x00c0b200 ;4KB粒度的堆棧段描述符,特權(quán)級(jí)1call flat_4gb_code_seg_sel:make_seg_descriptormov ebx,esi ;TCB的基地址call fill_descriptor_in_ldtor cx,0000_0000_0000_0001B ;設(shè)置選擇子的特權(quán)級(jí)為1mov ebx,[esi+0x14] ;從TCB中獲取TSS的線性地址mov [ebx+16],cx ;填寫(xiě)TSS的SS1域mov edx,[esi+0x06] ;堆棧的高端線性地址mov [ebx+12],edx ;填寫(xiě)TSS的ESP1域 ;在用戶任務(wù)的局部地址空間內(nèi)創(chuàng)建2特權(quán)級(jí)堆棧alloc_user_linear ;宏:在用戶任務(wù)地址空間上分配內(nèi)存mov eax,0x00000000mov ebx,0x000fffffmov ecx,0x00c0d200 ;4KB粒度的堆棧段描述符,特權(quán)級(jí)2call flat_4gb_code_seg_sel:make_seg_descriptormov ebx,esi ;TCB的基地址call fill_descriptor_in_ldtor cx,0000_0000_0000_0010B ;設(shè)置選擇子的特權(quán)級(jí)為2mov ebx,[esi+0x14] ;從TCB中獲取TSS的線性地址mov [ebx+24],cx ;填寫(xiě)TSS的SS2域mov edx,[esi+0x06] ;堆棧的高端線性地址mov [ebx+20],edx ;填寫(xiě)TSS的ESP2域 ;重定位U-SALT cldmov ecx,[0x0c] ;U-SALT條目數(shù) mov edi,[0x08] ;U-SALT在4GB空間內(nèi)的偏移 .b4:push ecxpush edimov ecx,salt_itemsmov esi,salt.b5:push edipush esipush ecxmov ecx,64 ;檢索表中,每條目的比較次數(shù) repe cmpsd ;每次比較4字節(jié) jnz .b6mov eax,[esi] ;若匹配,則esi恰好指向其后的地址mov [edi-256],eax ;將字符串改寫(xiě)成偏移地址 mov ax,[esi+4]or ax,0000000000000011B ;以用戶程序自己的特權(quán)級(jí)使用調(diào)用門(mén);故RPL=3 mov [edi-252],ax ;回填調(diào)用門(mén)選擇子 .b6:pop ecxpop esiadd esi,salt_item_lenpop edi ;從頭比較 loop .b5pop ediadd edi,256pop ecxloop .b4;在GDT中登記LDT描述符mov esi,[ebp+36] ;從堆棧中取得TCB的基地址mov eax,[esi+0x0c] ;LDT的起始線性地址movzx ebx,word [esi+0x0a] ;LDT段界限mov ecx,0x00408200 ;LDT描述符,特權(quán)級(jí)0call flat_4gb_code_seg_sel:make_seg_descriptorcall flat_4gb_code_seg_sel:set_up_gdt_descriptormov [esi+0x10],cx ;登記LDT選擇子到TCB中mov ebx,[esi+0x14] ;從TCB中獲取TSS的線性地址mov [ebx+96],cx ;填寫(xiě)TSS的LDT域 mov word [ebx+0],0 ;反向鏈=0mov dx,[esi+0x12] ;段長(zhǎng)度(界限)mov [ebx+102],dx ;填寫(xiě)TSS的I/O位圖偏移域 mov word [ebx+100],0 ;T=0mov eax,[0x04] ;從任務(wù)的4GB地址空間獲取入口點(diǎn) mov [ebx+32],eax ;填寫(xiě)TSS的EIP域 pushfdpop edxmov [ebx+36],edx ;填寫(xiě)TSS的EFLAGS域 ;在GDT中登記TSS描述符mov eax,[esi+0x14] ;從TCB中獲取TSS的起始線性地址movzx ebx,word [esi+0x12] ;段長(zhǎng)度(界限)mov ecx,0x00408900 ;TSS描述符,特權(quán)級(jí)0call flat_4gb_code_seg_sel:make_seg_descriptorcall flat_4gb_code_seg_sel:set_up_gdt_descriptormov [esi+0x18],cx ;登記TSS選擇子到TCB;創(chuàng)建用戶任務(wù)的頁(yè)目錄;注意!頁(yè)的分配和使用是由頁(yè)位圖決定的,可以不占用線性地址空間 call flat_4gb_code_seg_sel:create_copy_cur_pdirmov ebx,[esi+0x14] ;從TCB中獲取TSS的線性地址mov dword [ebx+28],eax ;填寫(xiě)TSS的CR3(PDBR)域popadret 8 ;丟棄調(diào)用本過(guò)程前壓入的參數(shù) ;------------------------------------------------------------------------------- append_to_tcb_link: ;在TCB鏈上追加任務(wù)控制塊;輸入:ECX=TCB線性基地址clipush eaxpush ebxmov eax,tcb_chain.b0: ;EAX=鏈表頭或當(dāng)前TCB線性地址mov ebx,[eax] ;EBX=下一個(gè)TCB線性地址or ebx,ebxjz .b1 ;鏈表為空,或已到末尾mov eax,ebx ;定位到下一個(gè)TCB(的線性地址)jmp .b0.b1:mov [eax],ecxmov dword [ecx],0x00000000 ;當(dāng)前TCB指針域清零,以指示這是最;后一個(gè)TCBpop ebxpop eaxstiret;------------------------------------------------------------------------------- start:;創(chuàng)建中斷描述符表IDT;在此之前,禁止調(diào)用put_string過(guò)程,以及任何含有sti指令的過(guò)程。;20個(gè)向量是處理器異常使用的mov eax,general_exception_handler ;門(mén)代碼在段內(nèi)偏移地址mov bx,flat_4gb_code_seg_sel ;門(mén)代碼所在段的選擇子mov cx,0x8e00 ;32位中斷門(mén),0特權(quán)級(jí)call flat_4gb_code_seg_sel:make_gate_descriptormov ebx,idt_linear_address ;中斷描述符表的線性地址xor esi,esi.idt0:mov [ebx+esi*8],eaxmov [ebx+esi*8+4],edxinc esicmp esi,19 ;安裝前20個(gè)異常中斷處理過(guò)程jle .idt0;其余為保留或硬件使用的中斷向量mov eax,general_interrupt_handler ;門(mén)代碼在段內(nèi)偏移地址mov bx,flat_4gb_code_seg_sel ;門(mén)代碼所在段的選擇子mov cx,0x8e00 ;32位中斷門(mén),0特權(quán)級(jí)call flat_4gb_code_seg_sel:make_gate_descriptormov ebx,idt_linear_address ;中斷描述符表的線性地址.idt1:mov [ebx+esi*8],eaxmov [ebx+esi*8+4],edxinc esicmp esi,255 ;安裝普通的中斷處理過(guò)程jle .idt1;設(shè)置實(shí)時(shí)時(shí)鐘中斷處理過(guò)程mov eax,rtm_0x70_interrupt_handle ;門(mén)代碼在段內(nèi)偏移地址mov bx,flat_4gb_code_seg_sel ;門(mén)代碼所在段的選擇子mov cx,0x8e00 ;32位中斷門(mén),0特權(quán)級(jí)call flat_4gb_code_seg_sel:make_gate_descriptormov ebx,idt_linear_address ;中斷描述符表的線性地址mov [ebx+0x70*8],eaxmov [ebx+0x70*8+4],edx;準(zhǔn)備開(kāi)放中斷mov word [pidt],256*8-1 ;IDT的界限mov dword [pidt+2],idt_linear_addresslidt [pidt] ;加載中斷描述符表寄存器IDTR;設(shè)置8259A中斷控制器mov al,0x11out 0x20,al ;ICW1:邊沿觸發(fā)/級(jí)聯(lián)方式mov al,0x20out 0x21,al ;ICW2:起始中斷向量mov al,0x04out 0x21,al ;ICW3:從片級(jí)聯(lián)到IR2mov al,0x01out 0x21,al ;ICW4:非總線緩沖,全嵌套,正常EOImov al,0x11out 0xa0,al ;ICW1:邊沿觸發(fā)/級(jí)聯(lián)方式mov al,0x70out 0xa1,al ;ICW2:起始中斷向量mov al,0x04out 0xa1,al ;ICW3:從片級(jí)聯(lián)到IR2mov al,0x01out 0xa1,al ;ICW4:非總線緩沖,全嵌套,正常EOI;設(shè)置和時(shí)鐘中斷相關(guān)的硬件 mov al,0x0b ;RTC寄存器Bor al,0x80 ;阻斷NMIout 0x70,almov al,0x12 ;設(shè)置寄存器B,禁止周期性中斷,開(kāi)放更out 0x71,al ;新結(jié)束后中斷,BCD碼,24小時(shí)制in al,0xa1 ;8259從片的IMR寄存器and al,0xfe ;清除bit 0(此位連接RTC)out 0xa1,al ;寫(xiě)回此寄存器mov al,0x0cout 0x70,alin al,0x71 ;讀RTC寄存器C,復(fù)位未決的中斷狀態(tài)sti ;開(kāi)放硬件中斷mov ebx,message_0call flat_4gb_code_seg_sel:put_string;顯示處理器品牌信息 mov eax,0x80000002cpuidmov [cpu_brand + 0x00],eaxmov [cpu_brand + 0x04],ebxmov [cpu_brand + 0x08],ecxmov [cpu_brand + 0x0c],edxmov eax,0x80000003cpuidmov [cpu_brand + 0x10],eaxmov [cpu_brand + 0x14],ebxmov [cpu_brand + 0x18],ecxmov [cpu_brand + 0x1c],edxmov eax,0x80000004cpuidmov [cpu_brand + 0x20],eaxmov [cpu_brand + 0x24],ebxmov [cpu_brand + 0x28],ecxmov [cpu_brand + 0x2c],edxmov ebx,cpu_brnd0 ;顯示處理器品牌信息 call flat_4gb_code_seg_sel:put_stringmov ebx,cpu_brandcall flat_4gb_code_seg_sel:put_stringmov ebx,cpu_brnd1call flat_4gb_code_seg_sel:put_string;以下開(kāi)始安裝為整個(gè)系統(tǒng)服務(wù)的調(diào)用門(mén)。特權(quán)級(jí)之間的控制轉(zhuǎn)移必須使用門(mén)mov edi,salt ;C-SALT表的起始位置 mov ecx,salt_items ;C-SALT表的條目數(shù)量 .b4:push ecx mov eax,[edi+256] ;該條目入口點(diǎn)的32位偏移地址 mov bx,[edi+260] ;該條目入口點(diǎn)的段選擇子 mov cx,1_11_0_1100_000_00000B ;特權(quán)級(jí)3的調(diào)用門(mén)(3以上的特權(quán)級(jí)才;允許訪問(wèn))0個(gè)參數(shù)(因?yàn)橛眉拇嫫?span id="ozvdkddzhkzd" class="token punctuation">;傳遞參數(shù),而沒(méi)有用棧) call flat_4gb_code_seg_sel:make_gate_descriptorcall flat_4gb_code_seg_sel:set_up_gdt_descriptormov [edi+260],cx ;將返回的門(mén)描述符選擇子回填add edi,salt_item_len ;指向下一個(gè)C-SALT條目 pop ecxloop .b4;對(duì)門(mén)進(jìn)行測(cè)試 mov ebx,message_1call far [salt_1+256] ;通過(guò)門(mén)顯示信息(偏移量將被忽略) ;初始化創(chuàng)建程序管理器任務(wù)的任務(wù)控制塊TCBmov word [core_tcb+0x04],0xffff ;任務(wù)狀態(tài):忙碌mov dword [core_tcb+0x06],0x80100000 ;內(nèi)核虛擬空間的分配從這里開(kāi)始。mov word [core_tcb+0x0a],0xffff ;登記LDT初始的界限到TCB中(未使用)mov ecx,core_tcbcall append_to_tcb_link ;將此TCB添加到TCB鏈中;為程序管理器的TSS分配內(nèi)存空間alloc_core_linear ;宏:在內(nèi)核的虛擬地址空間分配內(nèi)存;在程序管理器的TSS中設(shè)置必要的項(xiàng)目 mov word [ebx+0],0 ;反向鏈=0mov eax,cr3mov dword [ebx+28],eax ;登記CR3(PDBR)mov word [ebx+96],0 ;沒(méi)有LDT。處理器允許沒(méi)有LDT的任務(wù)。mov word [ebx+100],0 ;T=0mov word [ebx+102],103 ;沒(méi)有I/O位圖。0特權(quán)級(jí)事實(shí)上不需要。;創(chuàng)建程序管理器的TSS描述符,并安裝到GDT中 mov eax,ebx ;TSS的起始線性地址mov ebx,103 ;段長(zhǎng)度(界限)mov ecx,0x00408900 ;TSS描述符,特權(quán)級(jí)0call flat_4gb_code_seg_sel:make_seg_descriptorcall flat_4gb_code_seg_sel:set_up_gdt_descriptormov [core_tcb+0x18],cx ;登記內(nèi)核任務(wù)的TSS選擇子到其TCB;任務(wù)寄存器TR中的內(nèi)容是任務(wù)存在的標(biāo)志,該內(nèi)容也決定了當(dāng)前任務(wù)是誰(shuí)。;下面的指令為當(dāng)前正在執(zhí)行的0特權(quán)級(jí)任務(wù)“程序管理器”后補(bǔ)手續(xù)(TSS)。ltr cx;現(xiàn)在可認(rèn)為“程序管理器”任務(wù)正執(zhí)行中;創(chuàng)建用戶任務(wù)的任務(wù)控制塊 alloc_core_linear ;宏:在內(nèi)核的虛擬地址空間分配內(nèi)存mov word [ebx+0x04],0 ;任務(wù)狀態(tài):空閑 mov dword [ebx+0x06],0 ;用戶任務(wù)局部空間的分配從0開(kāi)始。mov word [ebx+0x0a],0xffff ;登記LDT初始的界限到TCB中push dword 50 ;用戶程序位于邏輯50扇區(qū)push ebx ;壓入任務(wù)控制塊起始線性地址 call load_relocate_programmov ecx,ebx call append_to_tcb_link ;將此TCB添加到TCB鏈中;創(chuàng)建用戶任務(wù)的任務(wù)控制塊alloc_core_linear ;宏:在內(nèi)核的虛擬地址空間分配內(nèi)存mov word [ebx+0x04],0 ;任務(wù)狀態(tài):空閑mov dword [ebx+0x06],0 ;用戶任務(wù)局部空間的分配從0開(kāi)始。mov word [ebx+0x0a],0xffff ;登記LDT初始的界限到TCB中push dword 100 ;用戶程序位于邏輯100扇區(qū)push ebx ;壓入任務(wù)控制塊起始線性地址call load_relocate_programmov ecx,ebxcall append_to_tcb_link ;將此TCB添加到TCB鏈中.core:mov ebx,core_msg0call flat_4gb_code_seg_sel:put_string;這里可以編寫(xiě)回收已終止任務(wù)內(nèi)存的代碼jmp .corecore_code_end:;------------------------------------------------------------------------------- SECTION core_trail ;------------------------------------------------------------------------------- core_end:

總結(jié)

以上是生活随笔為你收集整理的【OS学习笔记】三十八 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----微型内核汇代码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

国产手机在线播放 | 欧美国产日韩中文 | 91久久奴性调教 | 亚洲一级黄色 | 日狠狠| 日韩av线观看 | 精品国产精品久久一区免费式 | 四虎8848免费高清在线观看 | 久草在线资源网 | 五月天婷婷丁香花 | www在线观看国产 | 国产亚洲精品久久网站 | 免费av片在线 | 五月天天在线 | 国产精品一区二区三区免费看 | 久久国产欧美日韩 | 激情综合色图 | 99精品视频免费看 | 国产在线超碰 | 日韩影视大全 | 国产精品久久久久久久久久不蜜月 | 欧美日韩伦理在线 | 精品国产一区二区三区在线观看 | 日韩午夜小视频 | 一本一本久久a久久精品综合妖精 | 日日夜夜草 | 久久9视频 | 麻豆成人在线观看 | 91精品老司机久久一区啪 | 国产aaa大片| 欧美色久 | 在线91播放 | 成人国产一区 | 特级a毛片 | 91亚洲网| 人人要人人澡人人爽人人dvd | 久久国产片 | 99久久影视| 久久人人看 | 久久精品99国产精品日本 | 久久久久日本精品一区二区三区 | 韩国精品一区二区三区六区色诱 | 欧美aⅴ在线观看 | 色www.| 国产裸体永久免费视频网站 | 久久久久欠精品国产毛片国产毛生 | 国产精品在线看 | av成人在线电影 | 日日操日日插 | 天天爽天天摸 | 五月婷av | 99久久久久久国产精品 | 69xx视频 | 91禁看片 | 91成人精品一区在线播放69 | 久久成人高清 | 婷婷亚洲五月色综合 | 成人av一区二区兰花在线播放 | 在线小视频你懂的 | 美女视频又黄又免费 | 国产福利av | av一区二区三区在线 | 97视频在线观看免费 | 久久综合综合久久综合 | 国产丝袜在线 | 国产不卡精品 | 欧美地下肉体性派对 | 国精产品999国精产品视频 | 就要色综合 | 午夜成人影视 | 91麻豆文化传媒在线观看 | 中文字幕a∨在线乱码免费看 | 欧美亚洲成人免费 | 国产精品h在线观看 | 色综合久久久久网 | 99久久这里有精品 | 久久综合影音 | 激情视频在线观看网址 | 亚洲在线黄色 | 日韩a在线播放 | 国内小视频 | 久久久久久在线观看 | 亚洲综合视频在线播放 | 成人黄色电影在线播放 | 911国产在线观看 | 国产精品少妇 | 亚洲天堂自拍视频 | 99久免费精品视频在线观看 | 天天射天天操天天色 | 欧美性脚交 | av电影在线播放 | 成人精品一区二区三区中文字幕 | 午夜美女福利直播 | 欧美福利在线播放 | 精品专区| 视频国产在线观看18 | 人人看人人草 | 成人在线观看资源 | 亚洲精品福利视频 | 国产精品第54页 | 国产亚洲精品精品精品 | 在线成人高清电影 | 国产123区在线观看 国产精品麻豆91 | 国产福利精品一区二区 | 亚洲一本视频 | 久久国产精品网站 | 国际精品久久久久 | 成人黄在线观看 | 国产精品一区二区三区四区在线观看 | 在线观看黄色 | 午夜精品久久久久久久久久久久久久 | 天天干天天操av | av免费观看网址 | 国产在线观看91 | 美女久久久久久久久久久 | 久在线观看 | 欧美精品一区二区在线观看 | 天天躁天天狠天天透 | 国产精品毛片久久久 | 日韩国产欧美视频 | 国产原创在线 | 成年人在线观看网站 | 午夜精品一区二区三区免费 | 国产精品专区在线观看 | 九九精品视频在线 | 久久久精品 | 午夜美女av | 国产老熟 | 成人在线视频一区 | 91在线网址 | 国产精品午夜久久久久久99热 | 成人蜜桃视频 | 黄网站色视频免费观看 | 色在线网 | 亚洲色视频 | 亚洲视频免费 | 婷婷综合网 | 久久久国内精品 | 亚洲精品国偷自产在线91正片 | 欧美精品久久99 | 中文字幕免费高清在线 | 97人人射 | 日韩精品一区二区三区免费观看 | 最新动作电影 | 久久九九免费 | 三级黄色片子 | 久久综合干 | 超碰人人在线 | 国产99久久久国产精品免费看 | 国产欧美精品一区二区三区四区 | 有码视频在线观看 | 999久久久国产精品 高清av免费观看 | 国产无区一区二区三麻豆 | 日本成人免费在线观看 | 高清不卡一区二区在线 | 久草精品视频在线播放 | 92国产精品久久久久首页 | 欧美男女爱爱视频 | 国产天天综合 | 亚洲国产精品久久久久婷婷884 | 婷婷六月天天 | 亚洲国产精品成人va在线观看 | 日韩av资源站 | 国产精品久久久久久久av电影 | 欧美精品二 | 99情趣网视频 | 亚洲精品视频网 | www.com久久 | 中文字幕免费观看全部电影 | 久久久久亚洲精品国产 | 国产一二三四在线观看视频 | 成人av地址| 国产伦精品一区二区三区… | 超碰在线日本 | 亚洲精品美女久久久久网站 | 最新日韩视频在线观看 | 91免费试看 | 国产专区在线 | 国产日韩在线视频 | 久久免费看毛片 | 国产人成在线观看 | 国产精品久久久久久久久久久久久 | 在线高清 | 高清日韩一区二区 | 日韩国产欧美在线播放 | 欧美一区二区三区在线 | 99色免费| 天天色天天射综合网 | 欧美日韩国产在线 | 2023av在线 | 国产婷婷精品av在线 | 国产69精品久久久久99 | 午夜婷婷在线播放 | 亚洲精品资源在线观看 | 精品 激情| 丁香婷婷深情五月亚洲 | 国产精品毛片久久久久久 | 欧美在线aa| 97精品超碰一区二区三区 | 在线播放日韩av | 久久国产精品小视频 | 欧美日韩国产在线 | 日日夜夜网站 | 久久亚洲综合色 | 久久免费视频2 | 国产精品高清在线观看 | 色香蕉在线 | 欧美色黄| 色婷婷五| 天天射天天干天天 | 91在线porny国产在线看 | 免费瑟瑟网站 | 久久视频网址 | a电影免费看| 五月婷婷六月丁香在线观看 | 国产精品毛片一区视频播不卡 | 久久久久在线 | 91在线视频精品 | 日韩视频在线不卡 | 中文字幕一区在线观看视频 | 香蕉视频最新网址 | 久久精品人人做人人综合老师 | 1000部国产精品成人观看 | 日韩视频一区二区在线观看 | 久久久久国 | 激情综合亚洲精品 | 欧美极品在线播放 | 男女全黄一级一级高潮免费看 | 欧美男同网站 | 国产精品九九九九九九 | 四虎4hu永久免费 | 午夜在线资源 | 精品国产视频在线观看 | 日韩二级毛片 | 黄色影院在线免费观看 | 国产精品一区二区三区在线免费观看 | 色综合天 | 天天射天天 | 99久久夜色精品国产亚洲 | 最新国产精品视频 | 中文字幕精品在线 | 国产五月 | 久草视频在线新免费 | 国产xx视频 | 色婷婷免费视频 | 亚洲天堂在线观看完整版 | 四虎免费av | 97精品国产一二三产区 | 国产精品12| 成人av观看 | 亚洲综合在 | 久久久久久久毛片 | 国产精品不卡av | 久久久高清免费视频 | 99精品视频在线观看视频 | 久久精品精品 | 国产精品毛片一区 | 成人在线播放视频 | 国产精品日韩欧美 | 久久毛片视频 | 中文字幕第一页在线vr | 91麻豆精品国产91久久久久 | 激情av网| 久久久99国产精品免费 | 国产精品成人免费 | 亚洲精品视频在线观看视频 | 黄色福利网站 | 日韩精品免费专区 | 日韩av快播电影网 | 九九免费在线观看 | 久久久久免费精品国产 | 欧美日韩高清一区二区 国产亚洲免费看 | 一本一本久久a久久精品综合妖精 | 亚洲综合在线播放 | 亚洲深夜影院 | 中文在线a天堂 | 久久视频在线观看免费 | 久久久久久久久久电影 | 欧美久久久一区二区三区 | 四虎成人精品永久免费av九九 | 中国一级片在线播放 | 激情久久伊人 | 国产精品久久久久久久久久久免费 | 在线电影av | 福利视频精品 | 高清av在线免费观看 | 一区二区精品在线观看 | 四虎成人精品永久免费av九九 | 人人讲下载 | 午夜精品久久久久久久久久久久 | 美女免费网站 | 欧美狠狠操 | 国产高清不卡在线 | 欧美亚洲一区二区在线 | 麻豆传媒在线免费看 | av一级片在线观看 | 在线播放精品一区二区三区 | 成人免费网视频 | 国产精品久久电影观看 | 五月天综合激情 | 在线亚洲成人 | 日日夜夜亚洲 | 丁香激情综合久久伊人久久 | 午夜国产一区二区三区四区 | 一本一本久久a久久 | 国产又粗又猛又爽又黄的视频先 | 欧美日韩久久久 | 国产日韩精品欧美 | 欧美日本不卡高清 | 日韩av成人在线 | 麻豆视频在线 | 97色在线观看 | 黄色片亚洲| 午夜精品99久久免费 | 日本成人免费在线观看 | 五月婷婷在线观看 | 国产玖玖精品视频 | 97精品在线观看 | 精品在线看 | 最近免费中文视频 | 视频一区二区三区视频 | 一级淫片在线观看 | 亚洲人人爱 | 亚洲国产综合在线 | 九九亚洲视频 | 99久热在线精品视频 | 亚洲免费永久精品国产 | 免费色婷婷 | 欧美性黄网官网 | 日韩亚洲在线视频 | 午夜免费福利片 | 久久久久久久久久福利 | 国产精品高潮呻吟久久av无 | 国产亚洲精品bv在线观看 | 久久99热这里只有精品 | 欧美性天天 | 婷婷色综合网 | 天天干夜夜爱 | 最新久久久 | 日韩a在线看 | 欧美爽爽爽 | 国产精品免费看 | 久久婷婷精品 | 久久久久久蜜桃一区二区 | 久久免费黄色大片 | 国产一区二区在线播放 | 在线观看视频亚洲 | 国产精品久久久久久久久久久久午 | 91精品福利在线 | 国产91粉嫩白浆在线观看 | 欧美国产日韩在线视频 | 国产精品一级在线 | 天天综合久久综合 | 天堂av网在线 | 国产精品久久久久久久久久久免费 | 少妇高潮流白浆在线观看 | 又黄又刺激又爽的视频 | 欧美成人中文字幕 | 久久视讯 | 国产激情小视频在线观看 | 一级黄色网址 | 香蕉视频18 | 国产一二三四在线视频 | 免费亚洲电影 | 婷婷丁香花五月天 | 成人午夜在线电影 | 91av在线精品| 日本三级香港三级人妇99 | 欧美日韩一区二区三区在线免费观看 | 欧美成人免费在线 | 日韩天天综合 | av免费在线播放 | 在线99视频 | 九九亚洲精品 | 在线观看免费成人av | 日韩精品欧美精品 | 二区在线播放 | 999ZYZ玖玖资源站永久 | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 99麻豆视频 | 欧美一进一出抽搐大尺度视频 | av电影不卡在线 | 精品亚洲一区二区三区 | 国产精品一区二区av日韩在线 | 久久久久99999 | 国产精品久久久久久久午夜 | 日韩在线观看第一页 | 色综合中文综合网 | 久久 在线 | 日韩偷拍精品 | 嫩草伊人久久精品少妇av | 国产视频精品在线 | 特级西西444www大精品视频免费看 | 国产精品免费小视频 | 天天干天天拍天天操 | 综合伊人av | 在线观看视频h | 亚洲精品玖玖玖av在线看 | 天天操福利视频 | 久久麻豆视频 | 96在线| 波多野结衣在线视频一区 | 久久人人爽人人爽 | 91激情在线视频 | 五月婷婷六月丁香 | 99精品国产免费久久久久久下载 | 欧美日韩国产一区二区在线观看 | 99热官网 | 国产福利网站 | 中文字幕在线资源 | 五月导航 | 午夜美女福利直播 | 九九激情视频 | 91精品麻豆 | av在线播放国产 | 99国产精品视频免费观看一公开 | 国产精品欧美久久久久天天影视 | 欧美日韩首页 | 色成人亚洲 | 亚洲国产中文字幕在线 | 在线看中文字幕 | 国产日产欧美在线观看 | 亚洲精品视频在线观看免费 | 国产精成人品免费观看 | 欧美成人精品在线 | 国产 欧美 日本 | 久草在线免| 日韩网站在线看片你懂的 | 免费国产亚洲视频 | 成年人免费看av | 日韩精品三区四区 | 极品嫩模被强到高潮呻吟91 | 国产日韩在线一区 | 五月导航| 蜜桃视频日韩 | 99视频在线精品免费观看2 | 麻豆果冻剧传媒在线播放 | 久久免费公开视频 | 欧美精品二区 | 久草在线视频看看 | 在线亚洲天堂网 | 久久色网站 | 国产精品久久 | 国产精品久久久久久久久免费 | 成人av教育 | 激情五月婷婷综合网 | 午夜精品久久久久久久99水蜜桃 | 欧美乱淫视频 | 国产精品久久久久久高潮 | 日p视频在线观看 | 国产精品乱码高清在线看 | 日韩专区 在线 | 中文字幕av在线电影 | 国产精品美女久久久久久网站 | 国产原创在线 | 91精品久久久久久 | 91精品欧美一区二区三区 | 欧美午夜a | 手机看片1042 | av直接看| 91网站免费观看 | 中文字幕国产视频 | 91伊人影院 | 久久欧美综合 | 亚洲精品高清在线 | 六月色丁香 | 久免费 | 五月婷婷综合在线视频 | 成人在线观看资源 | 69国产成人综合久久精品欧美 | 国产精品第一 | 97电影院在线观看 | 亚洲午夜精品一区 | 国内精品久久久久久久久 | 久久国产色 | 国内精品久久天天躁人人爽 | 91香蕉国产在线观看软件 | 天天操婷婷 | 久草在线视频免赞 | 美女视频黄是免费的 | 国产原厂视频在线观看 | 亚洲人视频在线 | 91看成人 | 日本一区二区三区免费看 | 爱色av.com| 精品国产一区二区三区四区在线观看 | 精品国产免费久久 | 日韩免费高清在线观看 | 亚洲精品乱码久久久久久蜜桃91 | 久久久久久国产精品 | 亚洲天堂社区 | 日韩av资源在线观看 | 天天射综合网视频 | 国产精品国产自产拍高清av | 国产成人精品免高潮在线观看 | 欧美成人精品三级在线观看播放 | 色a在线观看 | www.久久色.com| 天天综合五月天 | 久久精品牌麻豆国产大山 | 国内精品视频在线播放 | 日韩理论在线视频 | 欧美精品免费在线观看 | 日本久久高清视频 | av色网站 | 国产精品精品国产 | 综合色狠狠 | 亚洲视频免费在线看 | 欧美在线不卡一区 | 天天干,天天射,天天操,天天摸 | 91麻豆精品国产91久久久无需广告 | 九九久久精品 | 天天操网址 | 在线观看视频在线 | 天天亚洲| 99视频一区二区 | 日韩三级中文字幕 | 日韩资源在线 | 免费av成人在线 | 日韩一级黄色片 | 久久久久9999亚洲精品 | 白丝av免费观看 | 操操操日日日干干干 | 国产精品一区二区三区在线免费观看 | 97精品欧美91久久久久久 | 人人爽人人爽人人爽 | 成人网在线免费视频 | 不卡日韩av| 国产高清一级 | 狠狠综合久久av | 日本一区二区不卡高清 | www免费看 | 色偷偷男人的天堂av | 久久好看免费视频 | 国产亚洲精品久久久久动 | 黄色网中文字幕 | 九九九热精品免费视频观看网站 | 日韩在线网址 | 亚洲视频综合在线 | 欧美一区二区三区在线 | 国产精品自在线 | 国产精品video爽爽爽爽 | www.av免费 | www.色综合.com | 成人av中文字幕 | www夜夜操com| 一本到视频在线观看 | 天天色天天射综合网 | 欧美日韩中文国产一区发布 | 国产精品久久久久久久久久久久久久 | 黄色成品视频 | 欧美性做爰猛烈叫床潮 | 免费视频成人 | 激情网在线视频 | 日日躁夜夜躁xxxxaaaa | 国产一区免费观看 | 一区二区三区四区免费视频 | 日韩在线字幕 | 亚洲综合涩 | 开心丁香婷婷深爱五月 | 免费91在线| 成人黄色电影在线 | 一级精品视频在线观看宜春院 | 亚洲最新精品 | 综合色爱| 亚洲禁18久人片 | 亚洲 欧美 91 | 久草网视频在线观看 | 国产精品白浆视频 | 久久国语 | 婷婷久久网站 | 天堂av在线7| 国产一二三四在线观看视频 | 成人免费视频观看 | 在线欧美日韩 | 五月婷婷久久综合 | 亚洲伊人天堂 | 成人免费观看视频大全 | 亚洲免费观看视频 | 五月天亚洲婷婷 | 精品视频不卡 | 国产精品午夜8888 | 国产亚洲aⅴaaaaaa毛片 | 国产午夜三级 | 精品嫩模福利一区二区蜜臀 | 国产 av 日韩| 成人久久18免费网站 | 一区精品久久 | 人人爽人人射 | 米奇狠狠狠888 | 日韩r级电影在线观看 | 国产福利久久 | 免费三级在线 | 97在线视频免费看 | 久久r精品 | 男女免费视频观看 | 久久爱992xxoo| 久久久久久久久久久久av | av免费网页 | 欧美激情第十页 | 久久成人视屏 | 欧美一区二区三区在线看 | 午夜精品久久久久久久99 | 黄色毛片视频免费观看中文 | 日韩精品高清视频 | 成人av午夜| 在线观看久 | 日韩高清精品免费观看 | 亚洲 欧美 变态 国产 另类 | 久久热亚洲 | 高清精品久久 | 日躁夜躁狠狠躁2001 | 免费色视频网址 | 人人看人人草 | 久久久综合香蕉尹人综合网 | 高清久久久 | 亚洲va男人天堂 | 国产在线不卡 | 免费看黄色91 | 国产色小视频 | 久久亚洲私人国产精品va | 国产亚洲在线观看 | 九九视频免费在线观看 | 国产精品原创av片国产免费 | 免费av大片| 国产成人精品一区二区三区在线 | 91在线观看视频网站 | 久久97超碰 | 六月丁香激情综合 | 久久综合久久综合久久 | 九九有精品 | 日韩色av色资源 | 久久久性 | 视频在线亚洲 | 麻豆视屏 | 91爱爱免费观看 | 国产成人福利片 | 九九九在线观看 | 黄色三级av | 又黄又爽又无遮挡免费的网站 | 免费av网址大全 | 精品一区二区精品 | 成年人黄色免费视频 | 在线播放av网址 | 国产免费黄视频在线观看 | 欧美精品在线观看免费 | 久久99久久99久久 | 国产一级精品视频 | 欧美在线视频不卡 | 日本中文字幕免费观看 | 国产午夜精品av一区二区 | 国产一区二区在线播放 | 婷婷亚洲综合五月天小说 | 中文字幕在线不卡国产视频 | 丁香九月婷婷综合 | 国产91电影在线观看 | 日韩在线免费观看视频 | 午夜天使| 五月激情婷婷丁香 | 国产精品99久久免费观看 | 欧美日韩国产一区二区三区在线观看 | 日韩中文字幕免费在线观看 | 黄网在线免费观看 | 国产96av| 日韩在线视频观看 | 99久久毛片 | 中文字幕一区二区三区在线观看 | 久久伊人八月婷婷综合激情 | 色婷五月天| 91片网| 狠色在线 | 黄色三级在线看 | 5月丁香婷婷综合 | 夜色.com| 国产99久久久久久免费看 | 日韩a级黄色片 | 成人夜晚看av | 欧美精品免费在线 | 欧美日韩精品在线 | 天天曰天天爽 | 成人精品福利 | 国产精品午夜久久久久久99热 | 五月婷婷综合在线视频 | 久久国产午夜精品理论片最新版本 | 99久久99视频只有精品 | 美女视频免费一区二区 | 人人插人人玩 | 成人免费观看a | 日韩免费一级电影 | avwww在线| 国产精品第52页 | 国产特级毛片aaaaaaa高清 | 九九免费观看全部免费视频 | 免费中文字幕 | 中中文字幕av | 亚洲一区日韩精品 | 97电影在线观看 | 亚洲国产精品视频在线观看 | 99免在线观看免费视频高清 | 免费v片 | 欧美贵妇性狂欢 | 九九久| 亚洲精品午夜一区人人爽 | 高清色免费 | 中文字幕一区二区三区精华液 | 成人午夜影院 | 99国产在线观看 | 91av精品 | 久草在线视频国产 | 欧洲av不卡| 精品国产欧美 | 国产蜜臀av | 日韩伦理一区二区三区av在线 | 久久免费的精品国产v∧ | 丰满少妇久久久 | 欧美粗又大| 久久久99精品免费观看 | 啪啪凸凸 | 日韩成片| 亚洲黄色精品 | 午夜精品久久久久久 | 在线免费91 | 免费看黄在线 | 久久人人爽人人爽人人片av软件 | 九九视频在线观看视频6 | 九九综合在线 | 伊人日日干 | av九九九| 亚洲精品在线视频播放 | 男女拍拍免费视频 | 中文字幕在线不卡国产视频 | 久久综合色影院 | 久久精品www人人爽人人 | 天堂在线视频中文网 | 国内精品久久久久久久久久久 | 五月激情亚洲 | 婷婷丁香自拍 | 亚洲黄色小说网址 | 波多野结衣在线观看一区二区三区 | 国产高清在线免费视频 | 成人性生活大片 | 久久久久久久久久久久国产精品 | 超级碰碰碰碰 | 天堂av观看| 能在线看的av | 亚洲精品一区二区三区新线路 | 国产超碰在线观看 | 国产日产精品一区二区三区四区 | 狠狠综合网 | 久久视频6| 精品国产自在精品国产精野外直播 | 亚洲欧美日韩国产 | 国产精品美女在线观看 | 91av片 | 午夜国产福利在线 | 日韩黄色软件 | 欧美一区在线观看视频 | 97电影在线观看 | 黄色大片中国 | 久久精品视频国产 | 成人亚洲精品国产www | 欧美精品资源 | 国产女人18毛片水真多18精品 | 欧美在线视频二区 | 色综合天天爱 | 国产午夜精品免费一区二区三区视频 | 成人在线观看资源 | 久产久精国产品 | 久久精品一区二区三区视频 | 久久精选视频 | 天天色宗合| 91精品国产综合久久福利 | 日韩欧美在线不卡 | 亚洲精品久久久久久国 | 午夜婷婷在线观看 | 日韩在线国产 | 91久久奴性调教 | 亚洲国产高清在线观看视频 | 免费在线观看成人小视频 | 免费精品视频在线 | 在线观看免费视频你懂的 | 中文字幕免费国产精品 | 日韩欧美在线免费 | 婷婷丁香激情 | 免费毛片一区二区三区久久久 | 天天草天天草 | 欧美精品乱码久久久久 | 精品国产一区二区三区不卡 | 日韩成人不卡 | 色av色av色av| 国产精品视频地址 | 91精品欧美一区二区三区 | 久久亚洲综合国产精品99麻豆的功能介绍 | 91精品视频免费观看 | 西西www4444大胆视频 | 久久黄页 | 2021久久| 免费三级黄色片 | 久久精品电影 | 91资源在线播放 | 日韩美女黄色片 | 亚洲国产人午在线一二区 | 在线视频 日韩 | 999精品| 91久久久国产精品 | 久久99这里只有精品 | 97精品国产91久久久久久久 | 中文字幕av一区二区三区四区 | 亚洲精品国产拍在线 | 国产婷婷精品 | 久久精品国产第一区二区三区 | 久久男人中文字幕资源站 | 亚洲黄色av一区 | 亚洲专区路线二 | 久久伦理影院 | 伊人亚洲综合网 | 国产一级免费播放 | 中文字幕人成乱码在线观看 | 97国产在线播放 | 国产精品不卡视频 | av久久久 | 免费在线观看中文字幕 | 欧美一区二区在线看 | 91高清视频| 在线观看亚洲专区 | 天天操天天干天天综合网 | 久久综合狠狠 | 一级免费av | 国产精品色视频 | 又黄又爽又湿又无遮挡的在线视频 | 亚洲人成人天堂h久久 | 中文字幕av有码 | 国产精品美女久久久久久久 | 人人澡人人澡人人 | 亚洲国产精品人久久电影 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 日韩三级视频 | 国产视频在线看 | av一区在线 | 久久99这里只有精品 | 亚洲午夜久久久久久久久久久 | 色多多污污 | 91丨九色丨蝌蚪丨老版 | 久久这里只有精品久久 | 亚洲婷婷在线视频 | 色橹橹欧美在线观看视频高清 | 日韩理论在线观看 | 在线观看视频日韩 | 波多野结衣在线观看一区 | 在线播放 日韩专区 | 国产综合在线视频 | 手机在线永久免费观看av片 | 国产精品午夜免费福利视频 | 欧美久久成人 | 中文字幕国产精品 | 草久久影院 | 国产电影一区二区三区四区 | 丁香激情五月婷婷 | 午夜精品久久久久久久久久久久久久 | 午夜精品av | 在线免费观看一区二区三区 | 久久综合激情 | 热久久免费国产视频 | 波多野结衣小视频 | 婷婷丁香六月 | 国产精品h在线观看 | 99久久精品国产观看 | 国产黄色片网站 | 精品久久久一区二区 | 久久热首页 | 国产精品久久久久久久久久白浆 | 日韩区欧美久久久无人区 | 一区 在线观看 | 在线免费亚洲 | 国产精品午夜久久久久久99热 | 九色91在线视频 | 精品欧美一区二区三区久久久 | 亚洲欧洲国产视频 | 亚洲精品乱码久久久久久蜜桃91 | 精品国产一区二区三区久久久蜜臀 | 欧美成人在线免费观看 | 免费观看国产精品 | 欧美色婷 | 国产不卡精品视频 | 五月婷婷中文 | 香蕉在线播放 | 久久精品9 | 97视频免费| 国产精品男女啪啪 | 999在线视频| 久久国产精品99国产 | 国产精品乱看 | 日韩精品久久久久 | 久久国产精品99久久久久久丝袜 | 91看国产| 久久精品99北条麻妃 | 999超碰 | 999久久久久久久久久久 | 午夜免费久久看 | 亚洲国产片色 | 不卡电影一区二区三区 | 日韩高清av在线 | www.色五月.com| 久久久精品 一区二区三区 国产99视频在线观看 | 亚洲欧美色婷婷 | 天天综合日日夜夜 | 99热精品国产一区二区在线观看 | 国产不卡视频在线 | 91精品视屏| 精品视频国产 | 开心激情综合网 | www免费网站在线观看 | 欧美专区国产专区 | 欧美一级专区免费大片 | 午夜电影 电影 | 99色免费 | 成人免费观看网站 | 国产精品久久久视频 | 日日久视频 | 爱爱av在线 | 五月天综合在线 | 在线三级av | 四虎影视国产精品免费久久 | 国产精品久久久 | 日韩久久一区二区 | 高清av免费观看 | 毛片的网址 | 久久精品韩国 | 九九九九精品 | 手机av资源 | 亚洲黄色app | 午夜精品区| 奇人奇案qvod | 免费在线视频一区二区 | 久久超碰免费 | av在线免费在线 | 午夜精品久久久久久 | 久久人操 | 九九热久久免费视频 | 17videosex性欧美| 天天拍天天草 | 免费看黄网站在线 | 国内精品久久久精品电影院 | 狠狠88综合久久久久综合网 | 九色免费视频 | 五月婷婷视频在线观看 | 中文字幕乱码日本亚洲一区二区 | 亚洲精品乱码久久久久v最新版 | 激情网第四色 | 人人看黄色 | 在线不卡的av | 蜜臀av一区 | 欧美一区二区三区在线播放 | 久久久精品免费看 | 亚洲精品小视频 | 亚洲国产中文字幕在线视频综合 | 国产精品成人一区二区 | 成人福利在线观看 | 久免费视频| 超碰人人干人人 | 久久久久久片 | av动图| 久久精品中文字幕一区二区三区 | 亚洲黄色免费在线看 | 亚洲综合网站在线观看 | 久久激情日本aⅴ | 久久超级碰视频 | 色综合欧洲 | 免费在线观看污 | 免费中文字幕在线观看 | 在线不卡a| 中文字幕免费国产精品 | 在线观看成人国产 | 成人啪啪18免费游戏链接 | 国产精品一区二区三区久久久 | 中文字幕 国产专区 | 欧美一级小视频 | 精品亚洲一区二区三区 | 久久成视频 | 日本中文字幕一二区观 | www.国产视频 | 婷婷午夜激情 | www.天天射 | 新版资源中文在线观看 | 99成人在线视频 | 中文字幕久久亚洲 | 日韩中文字幕国产精品 | 人人草网站 | 欧美a级成人淫片免费看 | 91在线操 | 五月亚洲综合 | 久久视频一区二区 | 丁香婷婷综合网 | 日本黄网站 | 91精品国产91久久久久 | 天天做天天爱天天综合网 | 欧美肥妇free | 夜夜操综合网 |