. MODEL (MASM 32 bits)

Initialise le modèle de mémoire du programme. (MASM 32 bits uniquement.)

Syntaxe

. MODEL memory-model, language-type⟧ ⟦, stack-option

Paramètres

memory-model
Paramètre obligatoire qui détermine la taille des pointeurs du code et des données.

type de langue
Paramètre facultatif qui définit les conventions d’appel et de nommage pour les procédures et les symboles publics.

stack-option
Paramètre facultatif.

l’option stack-option n’est pas utilisée si le modèle mémoire est FLAT.

La spécification de NEARSTACK regroupe le segment de pile en un seul segment physique (DGROUP) ainsi que des données. Le registre de segments de pile (SS) est supposé contenir la même adresse que le registre de segments de données (DS). FARSTACK ne regroupe pas la pile avec DGROUP ; par conséquent , SS n’est pas égal à DS.

Notes

. MODEL n’est pas utilisé dans MASM pour x64 (ml64.exe).

Le tableau suivant liste les valeurs possibles pour chaque paramètre lors du ciblage des plateformes 16 bits et 32 bits :

Paramètre Valeurs 32 bits Valeurs 16 bits (prise en charge du développement en 16 bits antérieur)
memory-model PLAT TINY, SMALL, COMPACT, MEDIUM, LARGE, HUGE, FLAT
type de langue C, STDCALL C, BASIC, FORTRAN, PASCAL, SYSCALL, STDCALL
stack-option Inutilisé NEARSTACK, FARSTACK

Code

Pour des exemples liés à MASM, téléchargez les exemples de compilateur dans Exemples Visual C++ et documentation associée pour Visual Studio 2010.

L’exemple suivant montre l’utilisation de la directive .MODEL.

Exemple

; file simple.asm
; For x86 (32-bit), assemble with debug information:
;   ml -c -Zi simple.asm
; For x64 (64-bit), assemble with debug information:
;   ml64 -c -DX64 -Zi simple.asm
;
; In this sample, the 'X64' define excludes source not used
;  when targeting the x64 architecture

ifndef X64
.686p
.XMM
.model flat, C
endif

.data
; user data

.code
; user code

fxn PROC public
  xor eax, eax ; zero function return value
  ret
fxn ENDP

end

Voir aussi

Informations de référence sur les directives
Grammaire MASM BNF