简单的说明和例子演示
[bits 32]
;Nasm Microcode Update 工具
;
;〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
;
; vL isqjIi rs rIXjsIk iigviiiiVdii SJJsZLJsV iijvr E U Yi i
; uBBs bQ B B XQ Bi viBqvrJiVqii BRi iBi iQg YUBSi ukiiB iSBB sSjBBkXr iBB BB vB
; KP B B Bid Vv BQv g Ii Qiiii BgiiiBiiiQM viBiu i B Bi Bv dq BBQBB
; sgBi iYiEBi XBr BB iQ B Pr iiiiv iUi iBi iI diZ B ii B Bv uDiurMB ii i i i
; is Bi Bi B ZI Bvg gi vidYiEdEgv vYvPSBuDjvv BiR B ii B JQD dv Qi
; kBiE B B Rrv vQ iBB B B Q B MB B UBv B B B sYvPBs B KBB
; BMBQiikBBQBq ivvsiB Vg vB JB iQ iB Br UQL B RD B B B iB iB uZk gM
; irriiiiii ii i virrrrrirrrr v r r i Ji r ii
;
;〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
;
;
;==================
; 实模式下执行工具
;==================
datasize db 00000000h
header db 48 dup (?)
mdata db 2000 dup (?)
%define totalsize (TotalS - DataS + 48)
ISTRUC Update
HeaderVersion dw 0
UpdateRevislon dw 0
Date dw 0
ProcessorSign dw 0
Checksum dw 0
LoaderRevison dw 0
ProcessorFlags dw 0
DataSize dw 0
TotalSize dw 0
Reserved dw 0,0,0
UpdateData db 2000 dup (?)
ExtSignCount dw 0
ExtChecksum dw 0
Reserved1 dw 0,0,0
ProcessorSign dw 0
ProcessorFlags dw 0
Checksum dw 0
IEND
mov eax,01
cpuid
mov ProcessorSign,eax
%if (Update.HeaderVersion == 00000001h)
; 首先检查处理信号段
%if (ProcessorSign == Update.ProcessorSign)
call Success
;如果有扩展信号
%else if (Up