Ask the Expert

What's the difference between 16 bit and 32 bit memory addressing?

Could you possibly outline the difference between 16 bit and 32 bit memory addressing and explain how older 16 bit programs work on modern 32bit operating systems?
Whole books can be written on topics like this. Basically, what Windows 2000 does is implement a complete virtual machine (VM) in NTVDM.EXE (NTVDM == NT Virtual DOS Machine). That provides the loader and executer for the 16-bit programs. Unlike cross machine VMs, NTVDM is a little simpler in that it does not have to provide the execution engine because it can just pass the instructions right on to the CPU to execute. From what I gather in talks with people on the Windows team at Microsoft, NTVDM is essentially a complete copy of Windows 3.1.

This was first published in October 2001

Join the conversationComment

Share
Comments

    Results

    Contribute to the conversation

    All fields are required. Comments will appear at the bottom of the article.