Online HelpPC 2.10      Quick Reference Utility     Copyright 1991 David Jurgens
 
               Memory Model Programming & Segment Information               
                                                                                
        Model                                                                   
        TINY    Data and code fit in one 64K segment.  All code and                              data are accessed via near pointers.                                     SMALL   64k data segment max and 64k code segment max.  All                              code and data are accessed via near pointers.                            COMPACT 1Mb data segment max and 64K code segment max.  Code                             is accessed via near pointers, data is accessed via                              far pointers.  No array can be greater than 64K                          MEDIUM  64K data segment max and 1Mb code segment max.  Code is                          accessed via far pointers, data is accessed via near pointers.           LARGE   1Mb data segment max and 1Mb code segment max.  All                              code and data are accessed via far pointers.  No                                 single element can be greater than 64K.                                  HUGE    1Mb data segment max and 1Mb code segment max.  All                              code and data are accessed via far pointers.  This is                            the only model where arrays can be larger than 64K.                              In this mode is C will normalize all data pointers                               to avoid segment wrapping.                                                                                                                       
                             Small Memory Model                             
                                                                                
        Directive  Segment    Alignment    Combine      Class                   
        .CODE       _TEXT       WORD        PUBLIC      'CODE'                           .DATA       _DATA       WORD        PUBLIC      'DATA'                           .CONST      CONST       WORD        PUBLIC      'CONST'                          .DATA?      _BSS        WORD        PUBLIC      'BSS'                            .STACK      STACK       PARA        STACK       'STACK'                                                                                                                                                                                   
                            Compact Memory Model                            
                                                                                
        Directive   Segment    Alignment    Combine     Class                   
        .CODE       _TEXT       WORD        PUBLIC      'CODE'                           .FARDATA    FAR_DATA    PARA        private     'FAR_DATA'                       .FARDATA?   FAR_BSS     PARA        private     'FAR_BSS'                        .DATA       _DATA       WORD        PUBLIC      'DATA'                           .CONST      CONST       WORD        PUBLIC      'CONST'                          .DATA?      _BSS        WORD        PUBLIC      'BSS'                            .STACK      STACK       PARA        STACK       'STACK'                                                                                                                                                                                   
                             Medium Memory Model                             
                                                                                
        Directive  Segment    Alignment     Combine     Class                   
        .CODE     name_TEXT     WORD        PUBLIC      'CODE'                           .DATA       _DATA       WORD        PUBLIC      'DATA'                           .CONST      CONST       WORD        PUBLIC      'CONST'                          .DATA?      _BSS        WORD        PUBLIC      'BSS'                            .STACK      STACK       PARA        STACK       'STACK'                                                                                                                                                                                   
                         Large or Huge Memory Models                         
                                                                                
        Directive    Segment  Alignment     Combine     Class                   
        .CODE       name_TEXT   WORD        PUBLIC      'CODE'                           .FARDATA    FAR_DATA    PARA        private     'FAR_DATA'                       .FARDATA?   FAR_BSS     PARA        private     'FAR_BSS'                        .DATA        _DATA      WORD        PUBLIC      'DATA'                           .CONST       CONST      WORD        PUBLIC      'CONST'                          .DATA?       _BSS       WORD        PUBLIC      'BSS'                            .STACK       STACK      PARA        STACK       'STACK'                                                                                                                                                                                            - all segments fall into DGROUP except for ???_TEXT, FAR_DATA                      and FAR_BSS                                                                    - see MASM DIRECTIVES                                                                                                                                      
[helppc.bosbyte.nl]              segment names                Home  Back  Topics