日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第11章 进入保护模式

發(fā)布時間:2023/12/10 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第11章 进入保护模式 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

對照代碼重點理解一下三個要點:

1,從實模式到保護模式的整體過程;

2,實模式怎樣安裝GDT;

3,從實模式怎樣過渡到安全模式;

4,安全模式怎樣尋址;


代碼如下:

;代碼清單11-1;文件名:c11_mbr.asm;文件說明:硬盤主引導扇區(qū)代碼 ;創(chuàng)建日期:2011-5-16 19:54;設置堆棧段和棧指針 mov ax,cs mov ss,axmov sp,0x7c00;計算GDT所在的邏輯段地址 mov ax,[cs:gdt_base+0x7c00] ;低16位 mov dx,[cs:gdt_base+0x7c00+0x02] ;高16位 mov bx,16 div bx mov ds,ax ;令DS指向該段以進行操作mov bx,dx ;段內起始偏移地址 ;創(chuàng)建0#描述符,它是空描述符,這是處理器的要求mov dword [bx+0x00],0x00mov dword [bx+0x04],0x00 ;創(chuàng)建#1描述符,保護模式下的代碼段描述符mov dword [bx+0x08],0x7c0001ff mov dword [bx+0x0c],0x00409800 ;創(chuàng)建#2描述符,保護模式下的數(shù)據(jù)段描述符(文本模式下的顯示緩沖區(qū)) mov dword [bx+0x10],0x8000ffff mov dword [bx+0x14],0x0040920b ;創(chuàng)建#3描述符,保護模式下的堆棧段描述符mov dword [bx+0x18],0x00007a00mov dword [bx+0x1c],0x00409600;初始化描述符表寄存器GDTRmov word [cs: gdt_size+0x7c00],31 ;描述符表的界限(總字節(jié)數(shù)減一) lgdt [cs: gdt_size+0x7c00]in al,0x92 ;南橋芯片內的端口 or al,0000_0010Bout 0x92,al ;打開A20cli ;保護模式下中斷機制尚未建立,應 ;禁止中斷 mov eax,cr0or eax,1mov cr0,eax ;設置PE位;以下進入保護模式... ...jmp dword 0x0008:flush ;16位的描述符選擇子:32位偏移;清流水線并串行化處理器 [bits 32] flush:mov cx,00000000000_10_000B ;加載數(shù)據(jù)段選擇子(0x10)mov ds,cx;以下在屏幕上顯示"Protect mode OK." mov byte [0x00],'P' mov byte [0x02],'r'mov byte [0x04],'o'mov byte [0x06],'t'mov byte [0x08],'e'mov byte [0x0a],'c'mov byte [0x0c],'t'mov byte [0x0e],' 'mov byte [0x10],'m'mov byte [0x12],'o'mov byte [0x14],'d'mov byte [0x16],'e'mov byte [0x18],' 'mov byte [0x1a],'O'mov byte [0x1c],'K';以下用簡單的示例來幫助闡述32位保護模式下的堆棧操作 mov cx,00000000000_11_000B ;加載堆棧段選擇子mov ss,cxmov esp,0x7c00mov ebp,esp ;保存堆棧指針 push byte '.' ;壓入立即數(shù)(字節(jié))sub ebp,4cmp ebp,esp ;判斷壓入立即數(shù)時,ESP是否減4 jnz ghalt pop eaxmov [0x1e],al ;顯示句點 ghalt: hlt ;已經(jīng)禁止中斷,將不會被喚醒 ;-------------------------------------------------------------------------------gdt_size dw 0gdt_base dd 0x00007e00 ;GDT的物理地址 times 510-($-$$) db 0db 0x55,0xaa

實驗結果:











總結

以上是生活随笔為你收集整理的第11章 进入保护模式的全部內容,希望文章能夠幫你解決所遇到的問題。

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