freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

現(xiàn)代微機原理與接口技術(shù)接口第10章(已修改)

2025-10-07 18:47 本頁面
 

【正文】 現(xiàn)代微機原理與接口技術(shù) 1 第 10章 PC機的高級編程技術(shù) 現(xiàn)代微機原理與接口技術(shù) 2 PC機環(huán)境下軟件對接口的訪問層次 裸機 BIOS 直接訪問 操作系統(tǒng) 驅(qū)動程序 間接訪問 應(yīng)用程序 現(xiàn)代微機原理與接口技術(shù) 3 特點 :可以直接進行內(nèi)存和端口的訪問,也可以自行決定是否在實模式和保護模式間切換。通常所有的端口和內(nèi)存都是對程序員開放的。 工具 :匯編語言或 C語言。 應(yīng)用 : BIOS都是基于這種低級層次用匯編來編寫的。驅(qū)動程序也有使用這種方法的。 優(yōu)點 :能夠編寫速度最快,占用空間最小的有效代碼。 缺點 :需要對硬件和接口有很熟悉的了解。 要會匯編,或熟練使用 C語言的指針。 不利于增加對新設(shè)備的控制。 現(xiàn)代微機原理與接口技術(shù) 4 特點 :通過 BIOS提供的功能調(diào)用間接地對內(nèi)存或端口訪問,從而控制硬件。 工具 :匯編語言或 C語言。 應(yīng)用 :驅(qū)動程序有些會使用這些功能調(diào)用。需要獲得高效率的應(yīng)用程序也采用這種方法。 優(yōu)點 :能夠編寫速度較快的有效代碼。 可以不需要編寫直接對硬件進行控制的代碼。 缺點 :需要對底層信號有所了解。 增加對新設(shè)備的控制不是很方便,但好于低級層次。 現(xiàn)代微機原理與接口技術(shù) 5 特點 :使用 BIOS功能調(diào)用和直接內(nèi)存訪問的方法編寫符合特定操作系統(tǒng)管理規(guī)范的設(shè)備驅(qū)動程序。 工具 : VC++與 DDK開發(fā)包,或第三方開發(fā)工具如 DriverStudio。 應(yīng)用 :在操作系統(tǒng)層面上的設(shè)備控制,并為應(yīng)用程序提供 API支持。 優(yōu)點 :既控制硬件,又保證操作系統(tǒng)的完整與安全。 缺點 :需要對底層信號有所了解。 需要對操作系統(tǒng)的各個管理模塊有深入的了解。 現(xiàn)代微機原理與接口技術(shù) 6 特點 :使用操作系統(tǒng)各種驅(qū)動程序所提供的功能調(diào)用或 API函數(shù)間接對硬件或內(nèi)存進行訪問。 工具 : VC++、 Delphi、 Java等。 應(yīng)用 :編寫面向終端用戶的各類應(yīng)用程序。 優(yōu)點 :無需對硬件控制有太多了解,只需完成應(yīng)用層面的工作就可以 ,而且還保證操作系統(tǒng)的完整與安全。 缺點 :需要了解大量的 API和功能調(diào)用函數(shù)的功能。 由于是間接調(diào)用,所以代碼的效率和編譯系統(tǒng)有很大的關(guān)系。 現(xiàn)代微機原理與接口技術(shù) 7 16位段地址 16位段內(nèi)偏移 : 16位段地址 16位段內(nèi)偏移 (左移四位) + 20位物理地址 = 6417H∶ 0100H 6417H 10H + 0100H = 64170H + 0100H = 64270H 采用了內(nèi)存分段的辦法,內(nèi)存分為若干段,段的大小根據(jù)需要決定,最大為 64KB 實地址模式的存儲管理(同 PC/XT) Pentium 4的內(nèi)存管理 ——接口直接訪問 現(xiàn)代微機原理與接口技術(shù) 8 000000 0A0000 100000 110000 ≈ ≈ FFFFFF 640KB常規(guī)內(nèi)存 384KB高端內(nèi)存 64KB高內(nèi)存區(qū) 1~4095MB擴展內(nèi)存 存放用戶程序和DOS駐留部分 存放顯存、網(wǎng)卡和部分用戶的 DOS驅(qū)動程序和BIOS 存放部分 DOS駐留程序 大于 1M以上的 擴展內(nèi)存, DOS下不能直接訪問,需要用 XMS規(guī)范使用??衫?DOS調(diào)用或BIOS調(diào)用來使用。 現(xiàn)代微機原理與接口技術(shù) 9 保護模式下使用的系統(tǒng)地址寄存器 ? GDTR — 48位的全局描述符表寄存器 全局描述符表 32位線性地址 16位界限值 ? IDTR — 48位的中斷描述符表寄存器 中斷描述符表 32位線性地址 16位界限值 ? TR — 16位的任務(wù)狀態(tài)段寄存器 TSS的 16位選擇字 ? LDTR — 16位的局部描述符選擇字寄存器 LDT的 16位選擇字 現(xiàn)代微機原理與接口技術(shù) 10 保護模式下 Pentium 4的段式存儲管理 1. 段式管理的地址變換 段寄存器的 15~2位 偏移量 45 32 31 0 段描述符 段表 32位線性地址 物理地址 邏輯地址 段基址 Pentium 系列的虛擬地址空間是 246= 64TB。 現(xiàn)代微機原理與接口技術(shù) 11 2. 段描述符 D7 D0 段界限 7~0 段界限 15~8 基址 7~0 基址 15~8 基址 23~16 基址 31~24 TYPE S AVL DPL P G D/B 0 段界限 19~16 0 1 2 3 4 5 6 7 現(xiàn)代微機原理與接口技術(shù) 12 D7 D0 AVL G D/B 0 段界限 19~16 用戶的操作系統(tǒng)可用位 D/B位 代碼段 (D位 ) D=1 使用 32位操作系統(tǒng)和 32位尋址方式 D=0 使用 16位操作系統(tǒng)和 16位尋址方式 數(shù)據(jù)段 (B位 ) B=1 使用 ESP寄存器,上限為 FFFFFFFFH B=0 使用 SP寄存器,上限為 FFFFH G=0 段長以 1字節(jié)為單位 G=1 段長以 4K字節(jié)為單位 D/B位 粒度位 現(xiàn)代微機原理與接口技術(shù) 13 A W R ED C E=0 E=1 S=1 DPL P D7 D0 存在位 特權(quán)位 S=1是非系統(tǒng)段 S=0是系統(tǒng)描述符 代碼段標志 數(shù)據(jù)段標志 兼容位 可讀位 訪問位 擴展方向位 可寫位 非系統(tǒng)段中的第 5字節(jié) 可執(zhí)行位 現(xiàn)代微機原理與接口技術(shù) 14 系統(tǒng)描述符中的 TYPE 現(xiàn)代微機原理與接口技術(shù) 15 RPL Ti 選擇符(段寄存器) 15 2 1 0 索引 Ti=1 Ti=0 …… 0 1 …… 0 1 LDT LDT LDT GDT 基址 界限 選擇符 基址 界限 LDTR GDTR 2 2 現(xiàn)代微機原理與接口技術(shù) 16 include include include // WORDLONG, //DWORD,WORD等數(shù)據(jù)類型 DWORDLONG gdtr,savegdt; //下面是 GDT中將創(chuàng)建的數(shù)據(jù)段描述符表 ,基地址 0X00000F00, //段界限為 0XFFFF,優(yōu)先級為 3的在內(nèi)存中的可寫數(shù)據(jù)段 WORD descriptor[4]= {0xFFFF, 0X0F00, 0XF200, 0X0040}; int result[10]; int main( int argc, char* argv[]) {_asm { push ebp sgdt gdtr // 將 GDTR寄存器的內(nèi)容讀取到 //gdtr開始的 6個字節(jié)中 , 其中 // 前兩個字節(jié)給出 GDT的界限值 , //高 4個字節(jié)給出 GDT的基地址 現(xiàn)代微機原理與接口技術(shù) 17 mov ebp,dword ptr [gdtr+2] // 將 gdt的基 // 地址讀到 EBP中 add ebp,70h // 我們選擇 70H偏移下的段描述 // 符( GDT中第 14個描述符) lea edi,savegdt mov esi,ebp movsd // 以上 4條指令保存原來在 70H偏移上 movsd // 的描述符 mov edi,ebp lea esi,descriptor; movsd // 把我們的數(shù)據(jù)段描述符裝入 70H movsd // 偏移上 push es mov ax,0073h // 選擇字為描述符偏移 70H拼接上 // 低 3位控制位元 ,其中 Ti為 0,表 // 示訪問 GDT,RPL為 11,為 3級優(yōu) // 先級 ,所以就為 73H 現(xiàn)代微機原理與接口技術(shù) 18 mov es,ax // ES裝入選擇字 73H lea edi,result // 將存放輸出結(jié)果的變量 //的地址放在 EDI中 mov eax,1 mov ebx,1 } _asm { mov cx,10 a1: mov es: [eax],eax add eax,4 loop a1 // 上面 4條指令將向物理地址 // 0X00000F00處寫 10個雙字 } _asm { mov cx,10 a2: mov eax,es: [ebx] mov [edi],eax 現(xiàn)代微機原理與接口技術(shù) 19 add ebx,4 add edi,4 loop a2 // 以上從物理地址 0X00000F00 // 處依次讀出 10個數(shù)據(jù)存放在 // re
點擊復制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1