80 votes

Quelle taille de variable utiliser (db, dw, dd) avec l'assemblage x86 ?

Je suis un débutant à assembler et je ne sais pas ce que tous les db, dw, dd, les choses signifient. J'ai essayé d'écrire ce petit script qui fait 1+1, le stocke dans une variable puis affiche le résultat. Voici mon code jusqu'à présent :

.386
.model flat, stdcall 
option casemap :none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\masm32.inc
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\masm32.lib
.data
num db ? ; set variable . Here is where I don't know what data type to use.
.code
start:
mov eax, 1               ; add 1 to eax register
mov ebx, 1               ; add 1 to ebx register
add eax, ebx             ; add registers eax and ebx
push eax                 ; push eax into the stack
pop num                  ; pop eax into the variable num (when I tried it, it gave me an error, i think  thats because of the data type)
invoke StdOut, addr num  ; display num on the console.
invoke ExitProcess       ; exit
end start

J'ai besoin de comprendre ce que les choses db, dw, dd signifient et comment elles affectent le réglage et la combinaison des variables et ce genre de chose.

Merci d'avance, Progrmr

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X