80286/80386 SOFTWARE COMPATIBILITY CONSIDERATIONS

6.Do not change bits 15-4 of MSW.

The 80386 uses some of the undefined bits in the machine status word. 80286 software should ignore bits 15-4 of the MSW. To change the MSW on an 80286, read the old value first with LMSW, change bits 3-0 only, then write the new value with SMSW.

7.Use a restricted LOCK protocol for multiprocessor systems.

The 80386 supports the 8086/80286 LOCK functions for simple instructions, but not the string move instructions. Any need for locked string moves can be satisfied by gaining control of a status, semaphore before using the string move instruction. Any attempt to execute a locked string move will cause a protection exception on the 80386.

The general 80286 LOCK protocol does not efficiently extend to large multiprocessor systems. If all the processors in the system frequently use the 8086/80286 LOCK, they will prevent other processors from accessing memory and thereby impact system performance.

Access to semaphores in the future, including current 80286 Operating Systems, should use a protocol

with the following restrictions:

.

"

,

Be sure the semaphore starts at a physical memory address that is a multiple of 4.

Do not use string moves to access the variable.

All accesses by any instruction or I/O device (even simple reads or writes) must use the LOCK

prefix or system LOCK signal.

'

0-2

Page 336
Image 336
Intel 80287 manual 80286/80386 Software Compatibility Considerations