Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1774 connectés 

  FORUM HardWare.fr
  Programmation
  ASM

  aide pour assembleur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

aide pour assembleur

n°2034402
marooh
Posté le 06-11-2010 à 13:15:42  profilanswer
 

bonjour,
j'ai écrit un code assembleur pour saisir une chaine de caractere qui se termine par # et puis calculer sa taille et l'afficher mais en assemblant j'ai eu des erreurs que j'ignore la façon de corriger.toute aide sera la bienvenue :)  
les erreurs obtenues sont
<1> unkonwn character
<2> unkonwn character
<3> segment name is superfluous
<3> extra characters on line
<48> unexpected end of file encountered
et le code écrit est le suivant:
.386
.model small
.stack 200h
.data
commande db 10,13,"saisir une chaine$"
msg db 10,13,"la taille  est$"
tab db 20 dup (0)
.code
main proc  
mov ax,@data
mov ds, ax
mov si,offset tab
mov cx, 16
mov bx,0
saisie:  
mov dx,offset commande
mov ah,9
int 21h
mov ah, 1
int 21h
mov BYTE PTR[si], al
cmp al,35
JE affiche
add si,type word  
inc bx  
loop saisie
Jmp affiche
affiche:
mov dx,offset msg
    mov ah,9
    int 21h
    mov ax,bx  
    mov dl, al
    Add dl, 48
    mov ah, 2
    int 21h    
main endp
 
end main

mood
Publicité
Posté le 06-11-2010 à 13:15:42  profilanswer
 

n°2034528
marooh
Posté le 07-11-2010 à 19:19:23  profilanswer
 

bon j'ai résolu les erreurs que j'avais en faisant une modification sur le code mais il en reste une qui est "unexpected end of file encoutered".
quelles sont les raisons de son apparition et les solutions?.mercii

n°2034544
olivthill
Posté le 07-11-2010 à 22:29:00  profilanswer
 

Habituellement, ce message "unexpected end of file encountered" se rencontre quand l'assembleur attend une fin de quelque chose, mais il voit la fin de fichier à la place.
Une fin de quelque chose, cela peut-être un crochant fermant, s'il y a eu un crochet ouvrant avant, ou une parenthèse fermante, ou un guillemet fermant, ou une apostrophe fermante, etc. Peut-être qu'il faut une apostrophe au lieu d'un guillemet pour entourer les chaines de caractères. Dans le code qui est montré, rien ne semble oublié, mais il doit y avoir quelque chose. Voici, à titre d'exemple, un programme assembleur qui marche, mais qui est pour un vieil assembleur :

;   .MODEL small
;   .STACK 100h
;   .CODE
 
_TEXT SEGMENT WORD PUBLIC 'CODE'
main:
   mov  ax,_DATA
   mov  ds,ax                  ;set DS to point to the data segment
   mov  ah,9                   ;DOS print string function
   mov  dx,OFFSET HelloMessage ;point to "Hello, world"
   int  21h                    ;display "Hello, world"
   mov  ax,10
   mov  ah,4ch                 ;DOS terminate program function
   int  21h                    ;terminate the program
_TEXT ENDS
 
_DATA SEGMENT WORD PUBLIC 'DATA'
HelloMessage DB 'Hello, world',13,10,'$'
_DATA ENDS
 
_STACK SEGMENT PARA STACK 'STACK'
    DB 128 dup (?)
_STACK ENDS
 
   END main


Message édité par olivthill le 07-11-2010 à 22:30:55
n°2034547
marooh
Posté le 07-11-2010 à 23:23:04  profilanswer
 

j'ai essayé de mettre des apostrophes au lieu des guillemet mais ça ne marche pas!!!! je ne sais plus quoi faiiiiiiiire :'(

n°2034571
olivthill
Posté le 08-11-2010 à 08:07:02  profilanswer
 

Citation :

add si,type word

Je viens de voir ça ! What is it? ¿qué es? Che cosa? Was ist das ? Chto eta ? Nan dess ka ? Mā Hw؟ ?  Kesako ? Quid est ? Il manque quelque chose. Un chiffre pour dire de combien il faut incrémenter si ? Voilà peut-être ce que le compilateur attend.

n°2034653
h3bus
Troll Inside
Posté le 08-11-2010 à 13:39:01  profilanswer
 

A l'époque ou je faisais de l'assembleur, l'indentation avait une signification... ça doit dépendre de ton compilateur, t'utilise quoi?

 

Edit: Je trouve aussi bizarre que tu aies deux end à la fin.


Message édité par h3bus le 08-11-2010 à 13:49:20

---------------
sheep++
n°2034656
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 08-11-2010 à 13:54:28  profilanswer
 

olivthill a écrit :

Citation :

add si,type word

Je viens de voir ça ! What is it? ¿qué es? Che cosa? Was ist das ? Chto eta ? Nan dess ka ? Mā Hw؟ ?  Kesako ? Quid est ? Il manque quelque chose. Un chiffre pour dire de combien il faut incrémenter si ? Voilà peut-être ce que le compilateur attend.


Non, "add si, type word" va ajouter la taille d'un word à si.
Ca serait bien que l'auteur du post nous dise quel assembleur il utilise, car son message est plus une erreur syntaxique, donc fortement liée à l'assembleur utilisé.


---------------
J'ai un string dans l'array (Paris Hilton)
n°2034670
olivthill
Posté le 08-11-2010 à 14:26:53  profilanswer
 

Ce serait plus simple de faire add si,1 ou inc si, et ca serait compatible avec plus d'assembleurs.

n°2034762
marooh
Posté le 08-11-2010 à 17:24:07  profilanswer
 

j'utilise tasm


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  ASM

  aide pour assembleur

 

Sujets relatifs
Compilation d'un fichier d'aide HTML (chm)Aide script php + mysql
aide pour detecter les acteurs et les uses casesaide pour algo "somme des chiffres d'un nombre"
Aide pour passage fichier dans hash MD5[Python] Comparer rapidement 10'000 objets, besoin d'aide
aide pour code assembleurAide pour l'assembleur ARM
aide en assembleur ARMA l'aide, besoin d'un pro de l'assembleur !!!!!
Plus de sujets relatifs à : aide pour assembleur


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR