程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> 匯編說話有效指令毛病概述

匯編說話有效指令毛病概述

編輯:更多關於編程

匯編說話有效指令毛病概述。本站提示廣大學習愛好者:(匯編說話有效指令毛病概述)文章只能為提供參考,不一定能成為您想要的結果。以下是匯編說話有效指令毛病概述正文


成績:cmpxchg8b 指令比擬一個8字節值edx和EAX帶有8字節值內存( 目標地操作數)。 只要有用目的操作數用於此指令是內存 操作數。 假如目的操作數是一個存放器處置器應發生一個 有效OpCode破例,履行的指令cmpxchg8b應該停滯和 處置器應當履行有效OpCode異常處置法式。 此毛病產生是 鎖定前綴為應用cmpxchg8b指令與一個(有效)存放器目標地 操作數。 在這類情形下,處置器能夠沒法啟動履行有效OpCode 異常處置法式,由於總線已鎖定。 這將招致體系掛起。

提醒:假如(有效)存放器目標地 操作應用cmpxchg8b指令和鎖定前綴,體系能夠掛起。 沒有內存數據已破壞,用戶可以履行體系重置以前往到正常 操作。 請留意,特定有效代碼序列需要此毛病 產生平日不克不及被生成,該課程的編程也不如許的序列 可可由此貿易軟件。

此毛病僅實用於奔跑 處置器、奔跑處置器與MMX技巧、奔跑OverDrive處置器 和奔跑OverDrive處置器帶有MMX技巧。 奔跑Pro處置器, 奔跑II處置器和i486及更早版本處置器不受影響。

變通方法:有兩種變通辦法此毛病以 掩護形式操作體系。 變通方法兩者生成一個頁面毛病當有效 OpCode破例情形。 在以上兩例中,頁毛病將維修前有效 OpCode破例,從而避免鎖定狀況的產生。 實行 細節將有所分歧取決於操作體系。 應用以下辦法之一:
第一部門的該處理方法集的第一個7條目(0-6)中止 描寫信息表(IDT)在非寫頁。 當有效OpCode異常 (異常6)湧現的緣由是鎖定cmpxchg8b指令帶有效注冊 目標地,然後才),處置器將生成一個頁面毛病假如沒有有 寫拜訪該頁面包括條目6的IDT。 的第二部門該處理方法 修正頁面毛病處置法式熟悉和准確地調劑"有效OpCode 破例情形,如今布線經由過程頁面毛病處置法式。

部件I、IDT頁面拜訪

標志頁面包括的第一個七個條目(0-6)的IDT為只讀經由過程 設置位1的頁面表條目為零。 也能夠設置cr0.wp(16位)為1。 如今,當" 有效OpCode異常產生鎖定cmpxchg8b指令,處置器將 會觸發頁面毛病因為它沒有寫拜訪該頁面包括條目6的 IDT。 此頁面毛病阻攔了總線鎖定狀況並給操作體系完整掌握 進程"有效操作異常。 請留意,破例6是 有效OpCode破例,是以與此圖式的OS有完整掌握的任何法式 履行一個有效cmpxchg8b指令。
可選:假如更新條目7-255的IDT產生在課程正常 操作,頁面毛病應防止在寫入這些IDT條目。 這些頁面毛病 可防止對齊IDT逾越一個4KB頁面界限(例如,可在第一個七個 條目(0-6)的IDT在第一個只讀"頁和"殘剩的條目在 讀/寫頁。

第II、頁面毛病 處置法式修正

修正尋呼容處置法式來盤算哪一種異常招致該頁面毛病應用 容地址以cr2。 假如毛病代碼客棧上表現發生異常 從震鈴0和假如地址對應於有效OpCode破例,然後彈出的 毛病代碼封閉客棧和跳轉到"有效OpCode異常處置法式。 不然 持續正常頁面毛病處置法式。

該處理方法有兩部門。 起首,中止描寫信息表(IDT)對齊 (例如,任何有效OpCode異常會招致頁面毛病(因為頁不 存在)。 其次,頁面毛病處置法式日期熟悉和准確地調劑 "有效OpCode異常和其他一些破例情形,如今布線經由過程 頁面毛病處置法式。

部件I、IDT校准:

對齊中止描寫信息表(IDT)如許的,其逾越4KB頁面界限, 把第一項啟動56字節來自終究的第一個4KB"頁。 這將 該第一個七個條目(0-6)在第一個4KB"頁和殘剩的條目在 第二個頁面。
該頁面包括的頭7條目IDT不克不及有映照在OS 頁面表。 這將招致任何破例0-6生成一份頁不存在毛病。 一個 頁面毛病阻攔了總線鎖定狀況並給操作體系完整掌握進程 這些異常。 請留意,破例6是有效OpCode破例,是以 與此圖式的OS有完整掌握的任何法式履行一個有效cmpxchg8b 指令。

第II、頁面毛病處置法式修正:

辨認拜訪指向的第一頁IDT經由過程測試的容地址cr2中。 頁面不存在毛病在其他地址可處置正常。
頁不存在毛病第一頁上的IDT,操作體系必需辨認和 發送異常形成該頁面不存在毛病。 持續之前,測試 毛病地址以cr2以肯定其能否被在地址規模響應 破例情形0-6。
盤算哪一種異常招致該頁不存在毛病自在地址 cr2中。
取決於操作體系,某些權限級別檢討能夠會請求,和 調劑中止客棧。
跳轉到正常處置法式為恰當異常。

兩個變通方法僅應上完成英特爾處置器前往family=5 經由過程CPUID指令。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved