There are two types of CALLS and JMPS in 16-bit assembly: near and far.
Near contains a 16-bit offset. For calls it will save the IP only.
Far contains a segment and a 16-bit offset. For calls it will save IP and CS.
Defining a proc as FAR tells the assembler that all Calls to that proc must give both a segment and a 16-bit offset. The upshot of this is that the FAR Call will save both IP and CS. There are two variants of RET: RETN and RETF. One will pull off IP and the other will pull of BOTH IP AND CS. Go figure which one, okay?
"Information has a tendency to be free. Which means someone will always tell you something you don't want to know."
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.