Help Noob [TASM] - ASM - Programmation
Marsh Posté le 25-02-2005 à 22:26:31
arsenik11 a écrit : Bonjours, j'ai débuté l'ASM TASM (=> 16 bits ) il y a 2 jours. Lorsque j'essais d'affecter une valeur à une variable, il y a toujours de s messages d'erreur. |
déclarer une variable non initialisée se résume à réserver suffisamment d'espace mémoire
dd ? => réserve un dword (32 bits)
db ? => réserve un octet (8 bits)
dw ? => réserve un word (16 bits)
arsenik11 a écrit : |
c'est bien
mov variable,1
cette opération écrit la valeur "1" dans l'adresse mémoire pointée par "variable". ceci est toutefois à éviter, il vaut mieux écrire dans un registre que dans la mémoire chaque fois que c'est possible, c'est bien plus performant.
sinon, fais aussi gaffe à la taille de tes variables (évite d'écrire un dword à un endroit où tu as reservé un octet), et au stockage dans la mémoire (little/big endian)
arsenik11 a écrit : |
avec la fonction 9h de l'interruption 21h. par contre, il faut faire gaffe car cette fonction écrit la valeur ASCII, et non la valeur numérique. tu dois donc effectuer une conversion (très simple à faire, je te laisse chercher)
Marsh Posté le 25-02-2005 à 23:29:31
Pour la conversion, j'ai trouvé c'est super simple ( X + 48 ).
Mais mon code m'affiche plein de caractère de m**de avec des BEEP ...
Voici mon code :
; Directives d'assemblage
; ------------------------------
.386
code segment use16
assume cs:code, ds:code, ss:code
org 100h
; -------------------------------
debut:
push dx
mov dx, 48
mov ah, 09h
mov dx, offset nb
int 21h
pop dx
; Fermeture du programme
; ------------------------------
ret
; Déclaration de la variable
nb dw ?
code ends
end debut
; -------------------------------
Merci pour ces préieuses infos.
++
Marsh Posté le 25-02-2005 à 19:54:52
Bonjours, j'ai débuté l'ASM TASM (=> 16 bits ) il y a 2 jours. Lorsque j'essais d'affecter une valeur à une variable, il y a toujours de s messages d'erreur.
1) Comment déclarer un variable non initialisée ( je crois que c'est : bidon db ?, 10, 13, '$' pour afficher des lettre mais je ne suis pas sur ) pour afficher des lettres ?
des chiffre ?
2) Comment affecter un chiffre à une variable ?
( genre mov mavar, 1 )
3) Enfin comment afficher cette variable à l'ecran ( grace à l'interuption 21h si possible ... )
Merci d'avance !
PS : Ce forum est génial, j'y ai plus appris en 5 min que 2h sur d'autre genre CS, ils sont super mais pas pour l'ASM ( encore moin le 16 bits )