英特爾386乘法錯(cuò)誤
一些早期型號(hào)的英特爾80386處理器存在32位整數(shù)乘法錯(cuò)誤。那些被發(fā)現(xiàn)有的被標(biāo)記為“僅16位S/W”(不確定S/W是什么意思),而干凈的被標(biāo)記為∑。軟件如何檢測(cè)它是
解答動(dòng)態(tài)
軟件可以通過(guò)檢查XBT和/或IBTS指令是否可以執(zhí)行來(lái)識(shí)別386上的那些早期步驟,因?yàn)檫@些指令是在以后的芯片修訂中刪除的。
軟件必須,然而,首先要檢查CPU是否真的是80386而不是486,因?yàn)?86的一些早期步驟暫時(shí)將這兩條指令的操作碼重新用于CMCHG指令(多么美妙的設(shè)計(jì)決策;)。
除此之外,只有通過(guò)實(shí)際的乘法,看看是否得到了正確的結(jié)果,才有可能進(jìn)行檢查。Windows安裝程序顯然是通過(guò)計(jì)算和驗(yàn)證0x81×0x0417A000的結(jié)果來(lái)實(shí)現(xiàn)的。我無(wú)法驗(yàn)證這是否是一個(gè)100%準(zhǔn)確的檢查,但我對(duì)此表示懷疑,因?yàn)檫@個(gè)錯(cuò)誤實(shí)際上似乎是一個(gè)芯片電源問(wèn)題,可能還取決于環(huán)境條件。
可以通過(guò)執(zhí)行各種乘法運(yùn)算和驗(yàn)證結(jié)果來(lái)測(cè)試。使用不同的內(nèi)存和基于寄存器的操作數(shù)執(zhí)行十個(gè)測(cè)試的代碼列表在www.pcjs.org
- End
免責(zé)聲明:
本頁(yè)內(nèi)容僅代表作者本人意見(jiàn),若因此產(chǎn)生任何糾紛由作者本人負(fù)責(zé),概與琴島網(wǎng)公司無(wú)關(guān)。本頁(yè)內(nèi)容僅供參考,請(qǐng)您根據(jù)自身實(shí)際情況謹(jǐn)慎操作。尤其涉及您或第三方利益等事項(xiàng),請(qǐng)咨詢專業(yè)人士處理。