📄 multi-add-slic.asm
字号:
;// +----------------+ +--------------+-------+--------+
;// | Selector | -> | Base address | Limit | Access |
;// +----------------+ +--------------+-------+--------+
;//
;//
;// using DS register to select a descriptor from GDT.
;// segment registers descriptor table(GDT and LDT)
;// +----------------+ +--------------+-------+--------+
;// DS | Selector | -> | Base address | Limit | Access |
;// +----------------+ +--------------+-------+--------+
;// for example:
;// GDT
;// +------------------------+ +--------+ |... ...| FF,FF,FF
;// | | | offset | | |
;// | | +--------+ +--------------+ 10,00,FF
;// | | | | |
;// | | ⊕------->| Data segment |
;// +------+ +--+-----+-+--------+----+ | | |
;// DS | 0008 | -> |00| ... |0|10,00,00|00FF|(1) ----------->+--------------+ 10,00,00
;// +------+ +--+-----+-+--------+----+ | |
;// | null |(0) | |
;// +------------------------+ |... ...| 00,00,00
;// base address: 00,10,00,00
;// limit: 0,00FF
;// DS value = 0008, 0008>>3 = 0001, so the (1)-GD in GDT is selected.
;//
;// code and data segment descriptor (4 double word, each is 16 bits)
;// +---------------------------------------+-----+-----+-----+------+--------------+
;// | Base(31-24) |G(23)|D(22)|0(21)|AV(20)| Limit(19-16) |
;// +---------------------------------------+-----+-----+-----+------+--------------+
;// | Access rights(31-24) | Base(23-16) |
;// +---------------------------------------+---------------------------------------+
;// | Base(15-0) |
;// +-------------------------------------------------------------------------------+
;// | Limit(15-0) |
;// +-------------------------------------------------------------------------------+
;//
;// Access rights: (8 bits)
;// +-----+----------+-----+-----+--------+-------+-----+
;// |P(31)|DPL(30-29)|S(28)|E(27)|ED/C(26)|R/W(25)|A(24)|
;// +-----+----------+-----+-----+--------+-------+-----+
;// [bit 24] A = 0: Segment not accessed.
;// A = 1: Segment has been accessed.
;// [bit 25] R/W = 1: data may be written.
;// R/W = 0: data may not be written.
;// [bit 26] set it to 0. (非顺从性)
;// [bit 27] E = 0: descriptor describes a data segment.
;// E = 1: descriptor describes a code segment.
;// [bit 28] S = 0:system descriptor.
;// S = 1: code or segment descriptor.
;// [bit 29-30] DPL: sets the descriptor privilege level.
;// DPL = 00: the highest privilege level, used by OS.
;// DPL = 11: the lowest privilege level, used by application in user-mode.
;// [bit 31] P = 0: descriptor is undefined
;// P = 1: segment contains a valid base and limit
;
;/////////////////////////////////// hilimit ///////////////////////////////////////////////
;
; Sys Sgg G x 0 x 0
; Code Seg 1 1 C R A
; Data seg G B 1 0 E W A
; +-------------+-/-/-/-/--------+-/--/-/-------+------------+
; | | |D| |A|Seg-Lim | |D | | | |
; hilimit = | base 31:24 |G|/|0|V| |P| P|S| Type | Base 23:16 |
; | | |B| |L| 19:16 | |L | | | |
; +-------------+-\-\-\-\--------+-\--\-\-------+------------+
;
;
; AVL -- Available for use by system software
; BASE -- Segment base address
; D/B -- Default operation size (0 = 16-bit segment; 1 = 32-bit segment)
; DPL -- Descriptor privilege level (0-3)
; G -- Granularity (clear for byte unit of seg. limit, set for 4k unit)
; LIMIT-- Segment Limit
; P -- Segment present
; S -- Descriptor type (0 = system; 1 = code or data)
;
;///////////////////////////////////////////////////////////////////////////////////////////////////////////
GDTR_LEN = GDT1_END-GDT1-1h ;GDTR的长度
GDTR:
dw GDTR_LEN ;8*3-1;limit GDT length
dd 00000000h
GDT1:
dw 0;limit(bit0-15)
dw 0;base address(bit0-15)
db 0;hibase address(bit16-23)
db 0;access(attribute)
db 0;hilimit(bit16-19,20-23)
db 0;msbase address(bit24-31)
DATA64K: ; cs - prom code segment
DATA64K_INDEX = DATA64K - GDT1
dw 0ffffh ; limit
dw 00000h ; base
db 000h ; hibase
db 093h ; access D/B Must set to 0 ,or error occur!
db 000h ; hilimit
db 000h ; msbase
DATA4G:
DATA4G_INDEX = DATA4G - GDT1
dw 0ffffh ; limit
dw 00000h ; base data segment points to
db 000h ; hibase ; 00000000
db 093h ; access
db 08fh ; hilimit (4GB)
db 000h ; msbase
GDT1_END:
times (0x10*2-($ mod 0x10)) db 0
S_SLIC_0 equ "Asus "
S_SLIC_1 equ "ACER "
S_SLIC_2 equ "DELL "
S_SLIC_3 equ "FUJISTU "
S_SLIC_4 equ "GATEWAY "
S_SLIC_5 equ "HP "
S_SLIC_6 equ "LENOVO "
S_SLIC_7 equ "NEC "
S_SLIC_8 equ "SONY "
S_SLIC_9 equ "TOSHIBA "
SLIC:
db 053h,04Ch,049h,043h,076h,001h,000h,000h,001h,04Bh,05Fh,041h,053h,055h,053h,05Fh,04Eh,06Fh,074h,065h,062h,06Fh,06Fh,06Bh,024h,006h,000h,011h,04Dh,053h,046h,054h,097h,000h,000h,000h,000h,000h,000h,000h,09Ch,000h,000h,000h,006h,002h,000h,000h,000h,024h,000h,000h,052h,053h,041h,031h,000h,004h,000h,000h,001h,000h,001h,000h,06Fh,092h,09Dh,0DCh,0B3h,079h,0EEh,027h,026h,008h,0F8h,0DCh,05Bh,0D8h,05Fh,04Bh,021h,034h,0ABh,060h,0ECh,090h,0C7h,0C2h,0D5h,060h,0D5h,0F5h,0D9h,082h,0F9h,02Eh,0BEh,0E8h,043h,038h,0D5h,0C2h,05Bh,09Eh,025h,0B8h,093h,0CDh,015h,0B8h,01Bh,0C3h,030h,07Dh,0ADh,055h,069h,079h,0BDh,01Ah,07Eh,044h,0C8h,0BCh,059h,05Ah,017h,0BEh,081h,0ADh,0EFh,0EEh,096h,021h,037h,0CCh,08Ah,042h,062h,0C6h,014h,005h,009h,021h,069h,07Ah,0E1h,08Ch,04Ah,0CEh,0D6h,0C8h,018h,078h,078h,086h,02Bh,030h,063h,0A6h,0E5h,064h,0B7h,0D2h,014h,05Eh,02Bh,044h,0BEh,033h,012h,06Bh,06Bh,0A3h,0BDh,09Eh,085h,0BBh,0BEh,06Ch,0E1h,0B1h,033h,0C2h,0DAh,091h,080h,0F3h,044h,0B4h,0CAh,09Fh,001h,000h,000h,000h,0B6h,000h,000h,000h,000h,000h,002h,000h,05Fh,041h,053h,055h,053h,05Fh,04Eh,06Fh,074h,065h,062h,06Fh,06Fh,06Bh,057h,049h,04Eh,044h,04Fh,057h,053h,020h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,024h,0B0h,089h,0CFh,0B1h,0F3h,01Dh,0B8h,07Ah,080h,035h,0CBh,0CDh,04Ah,0C8h,02Fh,084h,0CEh,099h,0A0h,04Fh,038h,076h,0B0h,004h,0F9h,06Fh,005h,033h,0C7h,0ECh,0A8h,058h,0A6h,0D7h,0B7h,03Fh,05Bh,082h,0B1h,0EEh,02Bh,0A7h,081h,052h,0F3h,045h,013h,0CEh,0EEh,0D5h,057h,037h,0FEh,075h,05Fh,05Ch,062h,0C4h,053h,0DAh,086h,0F1h,034h,0FAh,0EDh,091h,086h,073h,09Eh,0D2h,065h,0FDh,08Ah,03Dh,086h,094h,02Fh,02Ah,065h,018h,05Ch,0D9h,0E5h,07Ch,015h,01Eh,0F2h,008h,0C5h,085h,0C4h,08Fh,00Bh,0FAh,0A5h,0C3h,0A9h,0B0h,0F1h,0B2h,0E7h,06Ah,046h,0FBh,018h,001h,05Dh,04Ch,036h,033h,0DEh,0FBh,0E7h,01Dh,0E8h,015h,0C2h,085h,09Fh,08Ah,0A9h,032h,068h,01Fh,0B4h,0BCh,0A8h
db S_SLIC_0 ;Must less than 10 bytes !
;times (0x10-($ mod 0x10)) db 0
db 0
db 053h,04Ch,049h,043h,076h,001h,000h,000h,001h,0CDh,041h,043h,052h,053h,059h,053h,041h,043h,052h,050h,052h,044h,043h,054h,000h,000h,000h,000h,020h,04Ch,054h,050h,000h,000h,000h,000h,000h,000h,000h,000h,09Ch,000h,000h,000h,006h,002h,000h,000h,000h,024h,000h,000h,052h,053h,041h,031h,000h,004h,000h,000h,001h,000h,001h,000h,01Dh,0A3h,08Fh,0F3h,0A1h,09Dh,0F1h,0F2h,031h,0B4h,0B5h,017h,06Ch,0CEh,04Dh,017h,064h,06Ah,0F9h,079h,029h,050h,0CEh,00Ah,0B2h,013h,070h,071h,06Eh,028h,0ADh,0DBh,055h,01Ch,0A6h,023h,03Eh,00Ch,08Ah,04Fh,002h,049h,0C9h,0DFh,06Dh,0ABh,0CBh,0E7h,0C0h,02Ch,018h,07Dh,043h,05Ch,045h,082h,03Dh,0FCh,032h,0B0h,092h,0F8h,0C2h,000h,065h,00Dh,0B9h,0A0h,0CDh,016h,0EAh,040h,013h,0CEh,09Dh,03Bh,039h,0EDh,087h,034h,098h,0C4h,0D9h,0C7h,098h,049h,011h,077h,003h,0D4h,0A7h,06Ah,0D6h,03Bh,088h,071h,0DBh,01Ah,0D3h,0AAh,056h,042h,02Eh,0ADh,032h,091h,029h,059h,09Dh,04Dh,027h,0ADh,095h,0DFh,053h,090h,083h,082h,021h,052h,092h,02Fh,09Dh,033h,0EFh,0CBh,0C3h,0AEh,001h,000h,000h,000h,0B6h,000h,000h,000h,000h,000h,002h,000h,041h,043h,052h,053h,059h,053h,041h,043h,052h,050h,052h,044h,043h,054h,057h,049h,04Eh,044h,04Fh,057h,053h,020h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0A0h,034h,006h,03Ah,0FDh,07Bh,04Ch,0BAh,03Fh,02Dh,0FBh,0FFh,01Fh,0F5h,078h,0A8h,0DAh,02Eh,038h,0D6h,0CAh,084h,0DFh,0A1h,04Ch,0DBh,0F6h,033h,022h,090h,00Eh,0BAh,042h,0B9h,0A1h,0D1h,043h,010h,054h,079h,0F0h,03Dh,022h,041h,086h,0F3h,0D9h,01Dh,05Dh,029h,059h,092h,095h,0CDh,0E6h,0C0h,0E5h,02Fh,01Dh,032h,0C9h,049h,098h,0CBh,030h,0F9h,0E8h,0E3h,0D9h,00Eh,029h,0BBh,03Ah,0ADh,0CAh,03Dh,0FCh,01Eh,084h,0C4h,025h,0A6h,08Eh,052h,08Ch,09Dh,0EBh,070h,02Fh,063h,053h,034h,097h,06Ch,06Eh,019h,059h,026h,0E0h,032h,09Fh,0A5h,022h,0B1h,02Eh,0EFh,01Bh,045h,0E8h,0CCh,08Ah,0E5h,0E3h,001h,097h,0B2h,07Bh,0BFh,056h,0F8h,0E9h,0B4h,0CDh,035h,0ECh,001h,063h,018h
db S_SLIC_1
;times (0x10-($ mod 0x10)) db 0
db 0
db 053h,04Ch,049h,043h,076h,001h,000h,000h,001h,047h,044h,045h,04Ch,04Ch,020h,020h,04Dh,030h,037h,020h,020h,020h,020h,000h,012h,00Ch,0D6h,027h,041h,053h,04Ch,020h,061h,000h,000h,000h,000h,000h,000h,000h,09Ch,000h,000h,000h,006h,002h,000h,000h,000h,024h,000h,000h,052h,053h,041h,031h,000h,004h,000h,000h,001h,000h,001h,000h,07Fh,0F6h,0C1h,005h,0BEh,05Ch,057h,063h,0A5h,08Ah,068h,0F3h,06Eh,08Fh,006h,0FAh,0AFh,0B4h,09Fh,068h,082h,023h,0ECh,050h,040h,05Ah,073h,07Fh,0ECh,0E4h,007h,0CBh,0DCh,025h,01Ah,09Ch,0E3h,0E3h,066h,011h,0E0h,0A5h,098h,006h,0C5h,080h,00Ah,0FAh,042h,093h,086h,098h,0E7h,0D5h,01Bh,0D4h,0D7h,03Ah,0A4h,00Bh,0EEh,0E2h,07Dh,0BEh,05Fh,05Bh,015h,00Ch,0ABh,0D0h,021h,0DEh,0BFh,0E9h,0B5h,06Eh,0A4h,057h,0B9h,08Ch,00Ch,0D2h,0BAh,03Ah,069h,030h,076h,094h,071h,0A2h,064h,0D7h,04Ch,0D8h,085h,0BFh,0DFh,0A5h,06Ah,0C8h,0DCh,045h,0D5h,04Dh,08Ch,0B8h,08Ch,005h,02Fh,0FCh,02Eh,023h,0C4h,029h,0C5h,06Fh,03Fh,029h,06Ch,06Dh,057h,079h,00Eh,0B6h,075h,0EDh,021h,095h,001h,000h,000h,000h,0B6h,000h,000h,000h,000h,000h,002h,000h,044h,045h,04Ch,04Ch,020h,020h,04Dh,030h,037h,020h,020h,020h,020h,000h,057h,049h,04Eh,044h,04Fh,057h,053h,020h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,051h,0E9h,0A5h,0CDh,035h,030h,091h,0B0h,09Bh,0C0h,0CEh,005h,0FAh,026h,0B5h,043h,029h,040h,01Ch,013h,016h,0EFh,0E3h,0BFh,017h,02Fh,0BDh,03Bh,099h,0B5h,06Eh,023h,049h,0F7h,097h,0BCh,0EDh,0FFh,0C9h,04Ah,095h,0F4h,0A5h,0CDh,033h,00Bh,040h,02Eh,0C8h,0E1h,08Bh,0E6h,08Fh,0B6h,074h,08Eh,094h,043h,0E0h,02Fh,0B6h,0CEh,053h,0F0h,009h,03Dh,0B4h,018h,00Fh,044h,023h,010h,064h,0F3h,074h,006h,02Eh,01Dh,000h,071h,013h,06Ah,0C7h,0C9h,09Eh,082h,0CBh,071h,009h,0B1h,09Eh,042h,05Ah,07Dh,0F3h,0F8h,0CCh,0D1h,0FDh,022h,090h,0BFh,037h,03Eh,02Ch,068h,0BBh,030h,0FFh,084h,00Fh,0B5h,02Bh,0B3h,0C0h,07Ah,071h,044h,0C5h,0EBh,013h,015h,0C3h,0CAh,066h,01Bh,080h,02Eh
db S_SLIC_2
;times (0x10-($ mod 0x10)) db 0
db 0
db 053h,04Ch,049h,043h,076h,001h,000h,000h,001h,0D7h,046h,053h,043h,020h,020h,020h,050h,043h,020h,020h,020h,020h,020h,020h,000h,000h,000h,000h,020h,04Ch,054h,050h,000h,000h,000h,000h,000h,000h,000h,000h,09Ch,000h,000h,000h,006h,002h,000h,000h,000h,024h,000h,000h,052h,053h,041h,031h,000h,004h,000h,000h,001h,000h,001h,000h,0A5h,085h,08Ah,084h,01Dh,063h,061h,02Ah,077h,0FCh,0E9h,035h,052h,02Eh,002h,090h,098h,032h,059h,039h,04Eh,060h,070h,08Fh,078h,05Ch,026h,0E7h,0CEh,07Fh,0EEh,0A2h,03Ch,07Ch,04Bh,093h,0A7h,0AEh,0ABh,023h,052h,023h,0ABh,018h,0F2h,070h,0E4h,0F4h,088h,021h,0D0h,061h,0E5h,095h,031h,0A5h,059h,0FFh,0CEh,0C5h,02Bh,0B0h,0C2h,0E6h,081h,050h,0B7h,027h,0F6h,0A3h,048h,03Eh,0AEh,08Ch,035h,0D0h,0E2h,028h,029h,039h,07Eh,0ADh,036h,063h,081h,04Dh,0F6h,04Ch,01Eh,049h,0EBh,045h,004h,05Dh,09Fh,0A9h,055h,0EDh,03Eh,03Eh,019h,04Eh,0CFh,042h,007h,0FDh,08Ch,00Ch,06Dh,040h,090h,002h,0E3h,0DBh,0A2h,0FBh,0AFh,08Fh,0FDh,0A2h,071h,0B4h,0A0h,01Ch,0F4h,0C3h,069h,0BCh,001h,000h,000h,000h,0B6h,000h,000h,000h,000h,000h,002h,000h,046h,053h,043h,020h,020h,020h,050h,043h,020h,020h,020h,020h,020h,020h,057h,049h,04Eh,044h,04Fh,057h,053h,020h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,002h,092h,085h,0E9h,0D4h,098h,0EAh,046h,008h,008h,061h,0F3h,0DDh,050h,02Eh,0D7h,03Bh,0B6h,015h,086h,00Bh,021h,039h,095h,014h,0ABh,0AEh,07Dh,0D5h,0F4h,015h,0BEh,031h,0A8h,014h,030h,01Dh,02Ch,03Ah,0CEh,083h,04Eh,0D8h,0CFh,07Bh,06Ah,0CEh,056h,0EEh,02Dh,0D4h,050h,09Fh,024h,0C8h,091h,035h,0C9h,0FBh,077h,055h,0E1h,0C2h,032h,037h,000h,0AEh,01Ah,0ABh,056h,088h,015h,04Dh,028h,081h,044h,0E6h,0FEh,094h,0D9h,0C5h,006h,0FBh,05Ah,0FDh,067h,0C8h,01Fh,009h,039h,0EAh,083h,01Ch,0F5h,0D1h,020h,055h,093h,05Fh,011h,0E8h,0CAh,02Eh,008h,0F9h,077h,033h,0D9h,007h,045h,0C2h,038h,058h,040h,0D8h,03Fh,0FEh,0FFh,0DBh,0F7h,0F6h,03Ah,0A4h,006h,0BFh,029h,0DFh,0E3h
db S_SLIC_3
;times (0x10-($ mod 0x10)) db 0
db 0
db 053h,04Ch,049h,043h,076h,001h,000h,000h,001h,003h,047h,041h,054h,045h,057h,041h,053h,059h,053h,054h,045h,04Dh,020h,020h,000h,000h,004h,006h,02Ah,054h,04Bh,02Ah,001h,000h,000h,000h,000h,000h,000h,000h,09Ch,000h,000h,000h,006h,002h,000h,000h,000h,024h,000h,000h,052h,053h,041h,031h,000h,004h,000h,000h,001h,000h,001h,000h,02Dh,0DCh,0A1h,04Eh,06Eh,0EBh,0D6h,09Ah,099h,003h,059h,0AFh,0EDh,066h,0A8h,0FBh,02Ch,080h,014h,065h,0B3h,078h,0BEh,0BCh,015h,021h,090h,07Fh,023h,0E5h,081h,0CCh,01Dh,0EEh,09Bh,0BBh,023h,016h,0BDh,0C9h,0A1h,0ACh,0E2h,0E2h,07Eh,005h,0F6h,08Eh,069h,08Ch,004h,0D4h,086h,0B8h,0E5h,038h,072h,07Fh,0C9h,0D6h,013h,0C0h,080h,0BEh,044h,0E5h,0BEh,07Ah,0A4h,0D6h,013h,050h,0CCh,0CEh,0B0h,008h,03Bh,051h,00Ch,084h,037h,007h,03Ch,016h,06Ah,082h,09Eh,03Eh,0E6h,02Ah,06Ch,069h,089h,088h,0AEh,0A7h,0B6h,051h,0B0h,0D6h,0FAh,0AFh,068h,082h,0D1h,090h,067h,07Fh,07Bh,008h,0E5h,0B4h,040h,032h,0B1h,036h,022h,02Ch,019h,0A9h,051h,019h,028h,0DFh,066h,0E7h,0AFh,094h,001h,000h,000h,000h,0B6h,000h,000h,000h,000h,000h,002h,000h,047h,041h,054h,045h,057h,041h,053h,059h,053h,054h,045h,04Dh,020h,020h,057h,049h,04Eh,044h,04Fh,057h,053h,020h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,073h,0ABh,0F5h,043h,06Ch,0C0h,0B5h,030h,09Ch,00Ch,0DDh,0B6h,09Ch,067h,00Bh,0DCh,072h,05Dh,041h,04Eh,0D0h,042h,007h,02Dh,087h,0EEh,084h,0A5h,07Eh,08Bh,0E3h,0CFh,0D6h,0F3h,061h,0DBh,0A6h,055h,0EFh,080h,06Fh,057h,088h,01Ch,0F3h,0D4h,0EDh,049h,00Ch,01Eh,06Ch,0BCh,0F5h,0FCh,00Ch,05Dh,0E4h,042h,0F5h,004h,02Fh,02Dh,092h,03Fh,0E1h,0CDh,0ACh,047h,088h,027h,02Fh,027h,0B1h,07Dh,0F8h,064h,0EBh,0F6h,0F5h,07Ah,088h,0FBh,0FEh,009h,05Dh,0ABh,0B3h,0E1h,03Dh,0F7h,093h,0AFh,0EEh,0EBh,0B2h,062h,0D8h,0B9h,027h,006h,0B2h,0EAh,0B0h,0F6h,0D0h,048h,09Dh,000h,0B4h,00Bh,0F8h,041h,0A7h,0F2h,0A4h,099h,08Dh,076h,01Ch,032h,0E2h,056h,0CFh,08Fh,02Fh,03Eh,093h,0F1h
db S_SLIC_4
;times (0x10-($ mod 0x10)) db 0
db 0
db 053h,04Ch,049h,043h,076h,001h,000h,000h,001h,07Ah,048h,050h,051h,04Fh,045h,04Dh,053h,04Ch,049h,043h,02Dh,04Dh,050h,043h,001h,000h,000h,000h,048h,050h,051h,020h,001h,000h,000h,000h,000h,000h,000h,000h,09Ch,000h,000h,000h,006h,002h,000h,000h,000h,024h,000h,000h,052h,053h,041h,031h,000h,004h,000h,000h,001h,000h,001h,000h,05Bh,0ABh,060h,056h,0BCh,058h,01Eh,0E8h,0C1h,0D2h,0A1h,05Ch,0E5h,04Fh,0BBh,0FDh,01Dh,0A9h,08Ch,094h,0B4h,0AEh,008h,011h,0DCh,013h,059h,0D3h,07Fh,0F6h,03Eh,087h,031h,0B9h,095h,074h,010h,0DAh,03Bh,0A4h,05Bh,0B5h,019h,082h,07Ch,039h,0D7h,00Dh,07Ch,022h,0ACh,01Ch,02Ah,084h,0E9h,00Ah,088h,06Dh,0FAh,0B1h,0E2h,0D8h,0E8h,021h,096h,0E1h,02Eh,068h,09Ah,0BFh,044h,045h,03Eh,03Ch,08Eh,099h,090h,0DEh,037h,038h,057h,00Bh,092h,015h,0BCh,0DEh,0FFh,0F2h,007h,07Eh,0B5h,040h,08Ch,051h,03Ah,0C3h,002h,048h,0F6h,013h,012h,072h,0FBh,042h,078h,0E6h,047h,088h,054h,0C7h,0B0h,0F0h,093h,09Eh,0FBh,004h,0B7h,0B8h,0B8h,090h,0DEh,0DBh,0EDh,032h,0E1h,0FBh,054h,0A6h,001h,000h,000h,000h,0B6h,000h,000h,000h,000h,000h,002h,000h,048h,050h,051h,04Fh,045h,04Dh,053h,04Ch,049h,043h,02Dh,04Dh,050h,043h,057h,049h,04Eh,044h,04Fh,057h,053h,020h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,030h,0A8h,07Eh,010h,01Bh,00Fh,013h,0DDh,02Eh,02Dh,036h,0C2h,0ABh,054h,0A7h,08Ch,03Ah,0A0h,02Fh,0C6h,05Bh,0B3h,0B3h,0DDh,093h,0EEh,08Eh,039h,0A9h,092h,0D0h,05Ah,020h,0E1h,02Dh,0F5h,0A2h,01Ch,07Ah,03Eh,054h,085h,099h,072h,056h,05Fh,0ECh,06Bh,007h,017h,063h,082h,03Eh,079h,002h,050h,040h,0C9h,0F1h,0D3h,0C5h,058h,039h,0A8h,018h,0F1h,056h,091h,0EAh,09Ch,054h,01Ah,0E0h,0CEh,0C9h,016h,0F0h,05Dh,0D1h,090h,0B1h,0B0h,09Eh,081h,0E6h,0BAh,062h,0F1h,03Bh,096h,0B0h,07Dh,0D7h,047h,010h,078h,003h,0C9h,028h,052h,0E7h,02Dh,04Ah,0F7h,070h,0BBh,053h,01Fh,0BEh,0CDh,04Fh,077h,0D1h,02Fh,0A8h,03Dh,05Ch,026h,0AFh,080h,042h,025h,0EFh,07Ah,0B2h,067h,0BAh,01Ch
db S_SLIC_5
;times (0x10-($ mod 0x10)) db 0
db 0
db 053h,04Ch,049h,043h,076h,001h,000h,000h,001h,0DAh,04Ch,045h,04Eh,04Fh,056h,04Fh,054h,043h,02Dh,030h,033h,020h,020h,020h,011h,007h,000h,001h,04Dh,053h,046h,054h,097h,000h,000h,000h,000h,000h,000h,000h,09Ch,000h,000h,000h,006h,002h,000h,000h,000h,024h,000h,000h,052h,053h,041h,031h,000h,004h,000h,000h,001h,000h,001h,000h,069h,016h,04Ah,09Fh,0B1h,04Bh,03Ah,0FBh,080h,020h,0AAh,0AFh,0C4h,0F9h,03Eh,0C1h,080h,049h,0EEh,06Ah,065h,026h,072h,01Eh,0CDh,0BFh,05Fh,02Fh,096h,0D6h,0C0h,00Ah,092h,0F5h,006h,0B5h,000h,0B2h,03Bh,029h,002h,0E2h,04Ch,08Dh,0C2h,0F2h,0BCh,041h,077h,09Ch,070h,0F0h,0F3h,01Bh,009h,0D2h,063h,05Ah,0DCh,0A8h,083h,0F8h,05Eh,0C9h,015h,095h,0F9h,0FAh,0FDh,0DCh,005h,0B7h,04Dh,067h,07Fh,02Dh,0B3h,084h,033h,020h,0E1h,0D1h,079h,02Ah,0A7h,06Ah,077h,0D1h,0B6h,020h,02Ah,076h,042h,0C5h,0D5h,0E9h,0B6h,043h,040h,055h,044h,0C3h,0C9h,037h,099h,05Fh,041h,097h,070h,0F3h,0D1h,0F6h,007h,0ECh,07Bh,01Ah,029h,0A1h,0C1h,0F1h,091h,0FDh,048h,086h,06Eh,03Eh,0CEh,0CBh,001h,000h,000h,000h,0B6h,000h,000h,000h,000h,000h,002h,000h,04Ch,045h,04Eh,04Fh,056h,04Fh,054h,043h,02Dh,030h,033h,020h,020h,020h,057h,049h,04Eh,044h,04Fh,057h,053h,020h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,0ACh,090h,05Bh,0C2h,012h,014h,029h,05Ch,0FAh,092h,0D6h,0A5h,03Bh,015h,061h,0AEh,023h,0B6h,005h,094h,056h,0A5h,00Dh,0E3h,077h,061h,0B0h,01Ah,0D9h,0A8h,00Ch,072h,0F9h,0C2h,04Eh,045h,019h,066h,067h,00Ch,04Ch,06Ah,010h,0B4h,04Fh,066h,058h,017h,07Fh,07Bh,086h,0BEh,002h,072h,000h,01Ch,0DAh,044h,07Eh,08Ch,066h,028h,04Ch,01Ah,090h,026h,0D2h,044h,047h,0C2h,095h,004h,0FDh,0D5h,0F1h,064h,0D6h,0D3h,0B2h,0BEh,0A3h,0AAh,024h,0D4h,00Bh,042h,0F8h,094h,0F2h,0BFh,097h,027h,029h,04Dh,05Bh,06Dh,097h,06Ah,0E8h,01Ch,072h,02Ch,0ABh,036h,006h,05Ah,060h,037h,067h,002h,0C7h,003h,004h,0A2h,0C9h,020h,0A2h,068h,0A4h,0C5h,072h,030h,0E2h,005h,08Bh,0EBh,0A0h,0ECh
db S_SLIC_6
;times (0x10-($ mod 0x10)) db 0
db 0
db 053h,04Ch,049h,043h,076h,001h,000h,000h,001h,0D1h,04Eh,045h,043h,020h,020h,020h,04Eh,044h,030h,030h,030h,031h,034h,036h,001h,000h,000h,000h,04Ch,04Fh,048h,052h,000h,000h,000h,000h,000h,000h,000h,000h,09Ch,000h,000h,000h,006h,002h,000h,000h,000h,024h,000h,000h,052h,053h,041h,031h,000h,004h,000h,000h,001h,000h,001h,000h,065h,0B8h,0B4h,070h,028h,077h,03Eh,08Dh,02Fh,06Ah,021h,042h,0BCh,043h,0B3h,080h,03Ch,075h,091h,084h,003h,083h,092h,0C4h,0E0h,0D3h,03Ah,095h,0B1h,005h,003h,06Fh,0BCh,0E8h,0E4h,08Fh,011h,0E0h,066h,04Eh,0C6h,0D3h,05Fh,039h,051h,048h,0C0h,016h,09Fh,069h,0D1h,02Fh,0E7h,0C4h,0F1h,0A0h,026h,0B5h,087h,033h,0F7h,0ACh,083h,096h,0E4h,031h,039h,0A2h,093h,0BBh,0ECh,05Ah,00Dh,0C3h,0D5h,08Dh,08Dh,003h,0BFh,0B1h,062h,088h,090h,02Ah,01Ch,0C2h,0FEh,072h,009h,08Dh,0E7h,0B2h,07Ch,021h,0C2h,08Bh,041h,092h,098h,034h,0D9h,0F4h,0D5h,00Ch,041h,046h,0B3h,095h,0C0h,022h,0DCh,09Ah,0D3h,07Ch,0E6h,08Eh,0C6h,062h,0C9h,05Ah,0CCh,072h,080h,0F3h,07Eh,032h,06Ch,0D7h,001h,000h,000h,000h,0B6h,000h,000h,000h,000h,000h,002h,000h,04Eh,045h,043h,020h,020h,020h,04Eh,044h,030h,030h,030h,031h,034h,036h,057h,049h,04Eh,044h,04Fh,057h,053h,020h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,02Eh,0B1h,055h,0E2h,0E1h,0F0h,011h,01Fh,0C9h,093h,06Bh,07Ah,0F1h,02Dh,023h,0E2h,0F2h,049h,0DCh,08Bh,078h,0C3h,08Bh,0C8h,021h,0E7h,043h,02Dh,0F7h,0D1h,09Dh,06Dh,0BEh,062h,02Eh,04Dh,051h,0EEh,00Ah,0F1h,03Fh,076h,0ACh,031h,0D9h,0F1h,012h,027h,0D9h,0F0h,008h,01Ah,047h,037h,089h,0D8h,0BDh,039h,022h,0ACh,0F1h,0DCh,070h,01Fh,03Fh,051h,066h,0E6h,06Ch,0A2h,06Dh,0F5h,0C0h,006h,0B3h,01Dh,046h,09Ch,0F9h,0CEh,097h,09Bh,09Bh,0F0h,07Ch,01Fh,03Eh,033h,0C6h,004h,0E1h,092h,0B3h,079h,009h,04Ah,004h,0D9h,019h,0E6h,0C0h,029h,001h,048h,0CAh,0D0h,0EEh,0A3h,0BCh,055h,023h,0FCh,0BBh,0DCh,0A3h,010h,0BFh,0B2h,054h,0B7h,054h,067h,081h,0FEh,0DAh,04Fh,0E8h,0B7h
db S_SLIC_7
;times (0x10-($ mod 0x10)) db 0
db 0
db 053h,04Ch,049h,043h,076h,001h,000h,000h,001h,0C9h,053h,06Fh,06Eh,079h,000h,000h,056h,041h,049h,04Fh,000h,000h,000h,000h,001h,000h,000h,000h,053h,06Fh,06Eh,079h,000h,000h,000h,001h,000h,000h,000h,000h,09Ch,000h,000h,000h,006h,002h,000h,000h,000h,024h,000h,000h,052h,053h,041h,031h,000h,004h,000h,000h,001h,000h,001h,000h,04Bh,0EBh,056h,0EDh,028h,072h,008h,042h,0DDh,09Bh,00Fh,0ECh,09Eh,07Dh,07Dh,034h,0F6h,0C3h,026h,063h,04Dh,087h,0E7h,051h,0C5h,0ECh,0AEh,0FDh,0DEh,028h,0F1h,065h,085h,0C0h,079h,0AFh,071h,0E7h,0ACh,0A9h,006h,009h,0CCh,07Ah,0A6h,085h,06Dh,0FDh,0E0h,0F8h,061h,060h,0FFh,0C1h,054h,019h,0E9h,07Ah,0FBh,078h,00Eh,0C6h,072h,05Eh,0CBh,0BFh,0E6h,075h,06Eh,01Eh,08Ah,0FCh,0DBh,08Dh,0F8h,0D1h,001h,0E9h,0C1h,0BFh,06Fh,0E9h,095h,031h,05Ah,0F5h,04Eh,0D7h,016h,0B7h,06Ah,046h,00Ch,084h,0A5h,0AEh,0D6h,0ADh,03Bh,04Eh,055h,024h,094h,09Ah,07Dh,033h,055h,0AEh,088h,038h,01Bh,09Eh,013h,0A0h,09Dh,024h,0FBh,04Eh,0FEh,0ACh,0A0h,0ECh,002h,042h,0A4h,024h,0BDh,0C8h,001h,000h,000h,000h,0B6h,000h,000h,000h,000h,000h,002h,000h,053h,06Fh,06Eh,079h,000h,000h,056h,041h,049h,04Fh,000h,000h,000h,000h,057h,049h,04Eh,044h,04Fh,057h,053h,020h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,095h,086h,066h,0D6h,0B7h,0C4h,0EAh,089h,09Ch,01Eh,0E6h,027h,0C8h,00Ah,065h,0FEh,0D0h,09Eh,0E1h,02Ch,0C7h,033h,02Bh,03Dh,049h,03Ch,02Eh,005h,0C2h,07Eh,0F9h,055h,001h,081h,080h,08Dh,03Eh,02Fh,0D2h,063h,061h,093h,017h,067h,0F5h,017h,0E4h,039h,0A3h,0EFh,007h,07Dh,0FCh,09Bh,0A1h,0AAh,062h,0CBh,0DBh,016h,079h,050h,0F2h,0C2h,085h,0F2h,046h,00Ah,028h,0ABh,097h,095h,04Bh,07Dh,0C6h,00Fh,0FEh,073h,082h,0CCh,0DCh,07Ch,0F2h,0A3h,082h,035h,0BAh,0EBh,0CAh,033h,09Ch,087h,02Ah,06Ch,0FBh,06Ah,0BEh,0AAh,019h,09Bh,006h,0A2h,001h,0C2h,086h,0A3h,0F6h,030h,0CAh,05Dh,0F2h,0F2h,012h,06Fh,000h,05Eh,082h,008h,0F9h,06Bh,04Ah,048h,06Fh,0E2h,056h,07Ch,0ADh,02Ah
db S_SLIC_8
;times (0x10-($ mod 0x10)) db 0
db 0
db 053h,04Ch,049h,043h,076h,001h,000h,000h,001h,055h,054h,04Fh,053h,049h,04Eh,056h,054h,04Fh,053h,049h,04Eh,056h,030h,030h,000h,000h,004h,006h,020h,049h,04Eh,056h,000h,000h,000h,000h,000h,000h,000h,000h,09Ch,000h,000h,000h,006h,002h,000h,000h,000h,024h,000h,000h,052h,053h,041h,031h,000h,004h,000h,000h,001h,000h,001h,000h,001h,0D1h,0F8h,0E2h,02Eh,09Eh,056h,065h,020h,0B2h,03Ch,0D6h,08Ch,0A8h,0ABh,0EEh,0E9h,01Dh,0D7h,045h,0EBh,06Bh,072h,0ADh,045h,0B9h,029h,086h,0AEh,0AAh,08Ch,053h,039h,0F4h,025h,0BEh,0B7h,0D3h,0F9h,0D8h,0F9h,0C1h,090h,0ABh,0F9h,0D4h,005h,060h,0A0h,072h,047h,0E6h,0F9h,009h,015h,03Fh,060h,0C3h,0C7h,00Eh,009h,0C9h,0D1h,0BCh,01Ah,06Eh,0AFh,0D4h,07Dh,0F3h,09Dh,05Fh,05Ah,051h,01Eh,068h,0C9h,0F6h,03Dh,090h,0F5h,0B0h,034h,0F2h,003h,0C2h,09Ah,07Dh,0DDh,0E7h,052h,04Ch,0E8h,063h,004h,06Bh,000h,0A7h,0B5h,0ABh,0C0h,06Fh,035h,0E9h,07Ah,014h,0D4h,0F4h,04Fh,029h,0F1h,06Ah,056h,09Bh,0D7h,045h,081h,0F3h,037h,0E3h,0A5h,04Bh,0FDh,053h,05Bh,03Ch,0E9h,0A5h,001h,000h,000h,000h,0B6h,000h,000h,000h,000h,000h,002h,000h,054h,04Fh,053h,049h,04Eh,056h,054h,04Fh,053h,049h,04Eh,056h,030h,030h,057h,049h,04Eh,044h,04Fh,057h,053h,020h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,000h,099h,05Dh,0CFh,0FDh,000h,0BDh,012h,0E6h,0CEh,0ACh,074h,070h,01Dh,07Eh,052h,01Bh,0E0h,006h,08Ah,0B6h,0D9h,0F3h,0E6h,065h,0B1h,028h,0F7h,025h,0B7h,03Dh,0EAh,0E4h,038h,0D9h,0DBh,0D1h,0C0h,0EDh,07Ch,024h,00Dh,035h,054h,0A8h,00Ah,058h,0EFh,0EAh,0FFh,06Bh,04Fh,087h,095h,024h,0A8h,0C1h,052h,082h,069h,079h,098h,021h,07Fh,0F3h,0E0h,030h,020h,0B2h,072h,011h,0F0h,063h,035h,08Bh,009h,075h,00Ah,03Eh,002h,045h,008h,09Eh,023h,0AFh,0DCh,0BEh,010h,005h,004h,002h,0B7h,067h,0F2h,077h,0BAh,09Ch,0BEh,040h,051h,077h,06Ch,083h,0D0h,023h,090h,05Ah,01Dh,0CBh,06Ah,0F5h,0B8h,0B8h,0CAh,0E7h,00Dh,03Eh,071h,019h,0E7h,0FCh,094h,0CCh,09Ah,03Ah,053h,0A9h,0A6h,0BDh
db S_SLIC_9
;times (0x10-($ mod 0x10)) db 0
db 0
;//////////////////////////////////////////////////////////////////////////////////////////////////////////////
MSG0 db 0dh,0ah,0dh,0ah
db " ",PCI_ADD_SLIC_MODULE_NAME
db 0dh,0ah,0dh,0ah," Your Choice : ",00h
MSG1 db 0dh,0ah,0dh,0ah,0dh,0ah," Press F5 to Change ......" ,00h
MSG2 db " ",PCI_ADD_SLIC_MODULE_NAME, " Setup" ,0dh,0ah
db "" ,0dh,0ah
db " Please Choose OEM SLIC :" ,0dh,0ah
db "" ,0dh,0ah
db " 0. " ,S_SLIC_0," [Default] " ," 1. " ,S_SLIC_1 ,0dh,0ah
db " 2. " ,S_SLIC_2," " ," 3. " ,S_SLIC_3 ,0dh,0ah
db " 4. " ,S_SLIC_4," " ," 5. " ,S_SLIC_5 ,0dh,0ah
db " 6. " ,S_SLIC_6," " ," 7. " ,S_SLIC_7 ,0dh,0ah
db " 8. " ,S_SLIC_8," " ," 9. " ,S_SLIC_9 ,0dh,0ah
db "" ,0dh,0ah
db " Your Choice [Enter to exit]: " ,00h ;Must Set to 00
MSG2_C db "" ,0dh,0ah
db " Do you Want To Show The Post Message ? " ,0dh,0ah
db "" ,0dh,0ah
db " 0. Yes [Default] " ,0dh,0ah
db " 1. No" ,0dh,0ah
db "" ,0dh,0ah
db "Note!! If You Choose No, When You Want to Show The Message,You Just Need :" ,0dh,0ah
db " One. Reboot Your Computer , After BIOS Show Post Message ,Press -- F5 !!!!",0dh,0ah
db " Two. Or Put The CMOS battery out ,Then Put In!" ,0dh,0ah
db "" ,0dh,0ah
db " Your Choice : " ,00h
MSG3 db "" ,0dh,0ah
db "Save setting OK ,and now exit ! ....." ,00h
MSG_HD_1 db "" ,0dh,0ah
db " The data in Hard Drive is : " ,00h
MSG_WRONG_1 db " Error !! Can't not save data to hard drive !!! " ,0dh,0ah
db "Error Code = " ,00h
;//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
times (ROM_SIZE-$) db 00h
PREV_CHKSUM = 0
repeat $
load CHKSUM byte from %-1
CHKSUM = (PREV_CHKSUM + CHKSUM) mod 0x100
PREV_CHKSUM = CHKSUM
end repeat
store byte ((0x100-CHKSUM) mod 0x100) at ($-1) ; store the patch_byte,校验码,可以放在ASM的任意位置,只要整个ASM编译后的文件的校验和为0就可以了。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -