Je suis novice en matière de langage d'assemblage et j'essaie de créer un programme simple pour ajouter des numéros en langage assembleur. J'ai réussi à lancer le programme quand le .MODEL est minuscule, mais le programme renvoie l'erreur "Duplicate Declaration" quand .MODEL a été changé en petit. Je comprends la différence des deux modèles, mais je n'arrive pas à comprendre ce qui change.Duplication de la décotation des données dans l'assemblage .MODEL SMALL
Ce que j'ai essayé:
- J'ai changé le nom de données données1 et il fonctionne dans les petites, mais pas dans TINY.
- I a ajouté le code .org 100h après .MODEL et il fonctionne, car il a fait l'exécution du programme en mémoire près (?)
Quelle notion suis-je manque?
Nous vous remercions à l'avance
.MODEL TINY
.DATA
data DB 10D, 11D, 12D, 13D, 14D, 15, 16D, 17D, 18D, 19D
.CODE
.STARTUP
XOR AX, AX
MOV BX, OFFSET data
MOV CX, 5
ulang:
ADD AX, [BX]
INC BX
LOOP ulang
.EXIT
END
Veuillez ne pas ajouter de code et d'erreurs en tant qu'images. Cela rend la question moins interrogeable et est moins lisible et pratique pour nous. –
Lorsque vous utilisez minuscule si vous placez des données avant le code les données seront exectuées comme code. Déplacez votre section DATA après le code. –
en parlant de DOS: .tiny va créer un fichier .com, donc vous devez ajouter .org 0100h pour commencer à la bonne adresse. Supprimez tous les segments, car tous les registres de segment auront la même valeur. Et vous (comme Michael a dit) besoin soit de déplacer les données à la fin, ou ajouter un saut au démarrage en face de lui. sinon, il sera considéré comme du code (et exécuté, ce qui sera probablement crash, ou faire des choses que vous ne voulez pas) – Tommylee2k