Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

S3uQr1M

Abecedario [Assembly]

Mensagens Recomendadas

S3uQr1M

Alguem me pode ajudar??

Este programa tem como fim o utilizador inserir o abecedario e ser inserir mal dar erro e se inserir bem dar uma confirmação

Tenho este codigo e esta me a dar erro e nao sei pk....

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;                Space                ; 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
   
space macro
       
    mov dx, offset msg8
    mov ah, 9
    int 21h  
    
endm

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;                 Menu                ; 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;    

menu macro
      
    mov dx, offset msg6
    mov ah, 9
    int 21h  
    mov dx, offset msg7
    mov ah, 9
    int 21h  
    mov dx, offset msg6
    mov ah, 9
    int 21h  
    space
    mov dx, offset msg9
    mov ah, 9
    int 21h 
    mov dx, offset msg10
    mov ah, 9
    int 21h   
    space
    mov ah,1
    int 21h
    cmp al, 112 
    je play
    cmp al, 101
    je end 
    jmp menu
    
endm         

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;               Option                ;    
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 

option macro
    
    space  
    mov dx, offset msg11
    mov ah, 9
    int 21h  
    mov dx, offset msg12
    mov ah, 9
    int 21h 
    space
    mov ah,1
    int 21h
    cmp al, 112 
    je play
    cmp al, 101
    je end 
    jmp menu
    
endm

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;  Message to insert the characters   ;  
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 

message macro
    
    space
    mov dx, offset msg0
    mov ah, 9
    int 21h  
    mov dx, offset msg01
    mov ah, 9
    int 21h 
    space
    
endm

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;    Read the inserted characters     ; 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 

insert macro
    
    mov ah,1
    int 21h
    
endm

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;      Write msg1 on the screen       ;
;       Compare bl with 'z'           ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;   

winner macro
    
    space 
    mov dx, offset msg1
    mov ah, 9
    int 21h 
    cmp bl,122
    jne ncomplete 
    complete
    option 
    
endm

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;       Write msg2 on the screen      ; 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 

looser macro
    
    space
    mov dx, offset msg2
    mov ah, 9 
    int 21h  
    mov dx, offset msg21
    mov ah, 9 
    int 21h
    option
    
endm

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;      Write msg3 on the screen       ; 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  

error macro
    
    space
    mov dx, offset msg3
    mov ah, 9 
    int 21h   
    mov dx, offset msg31
    mov ah, 9 
    int 21h
    jmp play
    space
    
endm

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;      Write msg4 on the screen       ; 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 

ncomplete macro
    
    mov dx, offset msg4
    mov ah, 9 
    int 21h
    option
    
endm

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;      Write msg5 on the screen       ; 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;     

complete macro
    
    mov dx, offset msg5
    mov ah, 9 
    int 21h
    option 
    
endm

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;         Compare bl with 'z'         ;
;     Increase bl and clears al       ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;  

increase macro  
    
    cmp bl,122
    je winner
    inc bl
    mov al,0 
    jmp start  
    
endm

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;         Compare al with bl          ; 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;    

compare macro
    
    cmp al,bl
    je increase
    looser
    
endm

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;   Compare read value with 'enter'   ; 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;     

enter macro
    
    cmp al,13              
    je winner 
    
endm

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;  Compare read value with 'enter'  ; 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;     

wrong macro
    
    cmp al,13              
    je error 
    
endm   

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;  Inicialize bl with character 'a'   ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 

inicialize macro
    
   mov bl,97  
    
endm   

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
;                 Bye                 ; 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;     

bye macro
    
    space
    mov dx, offset msg13
    mov ah, 9 
    int 21h
    mov dx, offset msg14
    mov ah, 9 
    int 21h   
    mov dx, offset msg13
    mov ah, 9 
    int 21h
    
endm

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 

org 100h 

    menu  
    
play:
    
    message
    inicialize
    insert 
    wrong
    compare 
        
start:
        
    insert
    enter
    compare
         
winner:
    winner 
       
increase:
    increase 
    
error:
    error 
    
ncomplete:
    ncomplete 
    
complete:
    complete 
    
menu:
    menu 
    
space:
    space   
    
option:
    option                      
          
end: 
   bye
   
    ret     

    msg0 db 10,13, "    Please enter a correct sequence of characters $"     
    msg01 db 10,13, "    between 'a' and 'z' and press enter : $"
    msg1 db 10,13, "    You won  $"
    msg2 db 10,13, "    You lost  $" 

Desde ja obrigado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
FreiNando

Não sei qual o compilador que usas.

Também não mostras o código completo, ou pelo menos a declaração das variaveis de texto todas. Verifica se estão todas declaradas.


O caminho mais curto para conseguir fazer muitas coisas é fazer uma de cada vez. Samuel Smiles

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.