Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
S3uQr1M

Abecedario [Assembly]

Recommended Posts

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

Share this post


Link to post
Share on other sites
IRX773

Mas o programa corre?

PS: Usa a tag [ code] [ / code] para colocar o código para ficar mais legível.

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other sites
S3uQr1M

ja resolvi o problema...obrigado pela ajuda...

DEsculpem so ter respondendido agora 😳

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.