Search code examples
assemblyx86definitioncpu-wordlow-level

What does F in FWORD stand for?


I am learning assembly language and I came upon the FWORD (6 bytes). I'm curious what the F stands for? There's nothing on the wiki page and also nothing about this on MSDN.

https://en.wikipedia.org/wiki/FWord

https://msdn.microsoft.com/en-us/library/26c4cbza.aspx


Solution

  • The letter "F" in FWORD stands for the word "far" as in 32-bit far pointer, which is the primary use for the FWORD type. A 32-bit far pointer has an 32-bit offset in the first 4 bytes, and a 16-bit selector in the last 2 bytes.

    There's normally not much use for 32-bit far pointers, since most 32-bit operating systems make the entire 32-bit 4G address space accessible through all selectors. You might see them used in low-level operating system code to switch code segments since the CS selector determines the privilege level that the code executes, as well as whether the code executes in 16-bit, 32-bit or 64-bit mode.