17.05.2015 Views

TI486 Microprocessor - Al Kossow's Bitsavers

TI486 Microprocessor - Al Kossow's Bitsavers

TI486 Microprocessor - Al Kossow's Bitsavers

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

.MODEL SMALL<br />

. STACK<br />

.386P<br />

INCLUDE smimac.inc<br />

Testing/Debugging SMM Code<br />

What follows is an example that can be used for the first step in debugging of<br />

8MI code:<br />

12h<br />

1Ah<br />

iread/write<br />

; execute/readable<br />

COMMENT A<br />

This is an example of SMI code which can exist below the 1 MByte boundary. It<br />

must be before the 1 MByte boundary because it uses the value in the cs<br />

register in order to form fixups based on its location as well as for the<br />

jump to return to real mode .<br />

. CODE<br />

smi_handler:<br />

jmp<br />

db<br />

stacksmilabel<br />

$over<br />

100 dup (?)<br />

ipass data area for assembler<br />

iour smi handler gdt<br />

gdt dq a<br />

;null<br />

a<br />

ADDR<br />

LIMT 100000h<br />

g_big = $ - gdt<br />

dw (LIMT-l and Offffh)<br />

dw (ADDR and Offffh)<br />

db ((ADDR SHR 16) and Offh)<br />

db RD_WR OR (0 SHL 5) OR (1 SHL 7)<br />

db (((LIMT-1) SHR 16) AND Of h) OR (0 SHL 6) OR (1 SHL 7)<br />

db ((ADDR SHR 24) and Offh)<br />

g_code $-gdt<br />

ADDR = a<br />

LIMT = 100000h<br />

dw (LIMT-1 and Offffh)<br />

dw (ADDR and Offffh)<br />

db ((ADDR SHR 16) and Offh)<br />

db EX_RD OR (0 SHL 5) OR (1 SHL 7)<br />

db (((LIMT-l) SHR 16) AND Of h) OR (0 SHL 6) OR (1 SHL 7)<br />

db ((ADDR SHR 24) and Offh)<br />

A-23

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!