. 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