Hello ALL! It would be very nice to get an answer... on the link http://www.keil.com/support/docs/1134.htm for the large memory model is stated: NCODE (0X100000-0X10FFFF), .......... FCODE (0X0-0XDFFF, 0X100000-0X10FFFF), ...) My question is: has it any sense to define NCODE for the large memory model and if yes, please give me some info how it works. THANK YOU VERY MUCH! With best regards, S.
Is it only to speed up the code execution?
The memory model determines the default memory type to use for variables and functions. NCODE assumes that all calls are within a single segment so the code is generally smaller. It allows different types of CALLx instructions that can be more efficient. All near functions are placed in the NCODE group. When you use far functions the code always uses CALLS instructions. This allows a call past the 64kbyte boundary. Does this help you?
There should be no memory class NCODE in a LARGE memory model project. Also it makes no sense to use 'near' code, since the only place where you can make NEAR calls safely are within the same module (which will be located in a single 64KB memory block anyway). Reinhard
Thanks, one should it understand : on this link should be no memory class NCODE for a LARGE memory model project! Regards, S.