ayuda para codigo en assembler
Publicado por Luis (1 intervención) el 07/06/2009 18:27:55
bueno yo soy novato en este lenguaje y necesito q me ayuden a ver q errores hay en este programita
....
;Programa impresión de ingreso de datos por teclado e impresión en pantalla de opciones (1-3)
pila segment stack
db 64 dup ("pila")
pila ends
data segment
let1 db "Este es mi primer programa $"
let2 db 13,10,"Cual mensaje deseas (1-3)$"
let3 db 13,10, "deseas terminar el programa (s/n)$"
let4 db 13,10, "___________ERROR___________$"
msg1 db "Mensaje UNO$"
msg2 db "Mensaje DOS$"
msg3 db "Mensaje TRES$"
data ends
codigo segment
assume cs:codigo,ds:data,ss:pila
inicio:
mov ax,data ; Instrucciones para todo programa
mov ds,ax ;
call clrscr
mov dx,offset let1
mov ah,09h
int 21h
mov dx,offset let2
mov ah,09h
int 21h
lee_tecla: mov ah,01h
int 21h
mensaje1: cmp al,31h
jne mensaje2
mov ah,09h
lea dx,msg1
int 21h
jmp salir
mensaje2: cmp al,32h
jne mensaje3
mov ah,09h
lea dx,msg2
int 21h
jmp salir
mensaje3: cmp al,33h
jne error
mov ah,09h
lea dx,msg3
int 21h
jmp salir
exit: lea dx,let3
mov ah,09h
int 21h
mov ah,01h
int 21h
cmp al,"s"
je salir
cmp al,"S"
je salir
cmp al,"n"
je ciclar
cmp al,"N"
je ciclar
error: lea dx,let4
mov ah,09h
int 21h
jmp exit
ciclar: call clrscr
; jmp ciclar2
salir: call clrscr
mov ax,4d00h
int 21h
; procedimiento para limpiar pantalla
clrscr proc near
mov ax,0600h
mov bh,07h
mov cx,0000h
mov dx,184fh
int 10h ;interrupcion del BIOS
mov ah,02h
mov dx,0
mov bh,0
int 10h
ret
clrscr endp
mov ax,4c00h
int 21h
codigo ends
end inicio
....
;Programa impresión de ingreso de datos por teclado e impresión en pantalla de opciones (1-3)
pila segment stack
db 64 dup ("pila")
pila ends
data segment
let1 db "Este es mi primer programa $"
let2 db 13,10,"Cual mensaje deseas (1-3)$"
let3 db 13,10, "deseas terminar el programa (s/n)$"
let4 db 13,10, "___________ERROR___________$"
msg1 db "Mensaje UNO$"
msg2 db "Mensaje DOS$"
msg3 db "Mensaje TRES$"
data ends
codigo segment
assume cs:codigo,ds:data,ss:pila
inicio:
mov ax,data ; Instrucciones para todo programa
mov ds,ax ;
call clrscr
mov dx,offset let1
mov ah,09h
int 21h
mov dx,offset let2
mov ah,09h
int 21h
lee_tecla: mov ah,01h
int 21h
mensaje1: cmp al,31h
jne mensaje2
mov ah,09h
lea dx,msg1
int 21h
jmp salir
mensaje2: cmp al,32h
jne mensaje3
mov ah,09h
lea dx,msg2
int 21h
jmp salir
mensaje3: cmp al,33h
jne error
mov ah,09h
lea dx,msg3
int 21h
jmp salir
exit: lea dx,let3
mov ah,09h
int 21h
mov ah,01h
int 21h
cmp al,"s"
je salir
cmp al,"S"
je salir
cmp al,"n"
je ciclar
cmp al,"N"
je ciclar
error: lea dx,let4
mov ah,09h
int 21h
jmp exit
ciclar: call clrscr
; jmp ciclar2
salir: call clrscr
mov ax,4d00h
int 21h
; procedimiento para limpiar pantalla
clrscr proc near
mov ax,0600h
mov bh,07h
mov cx,0000h
mov dx,184fh
int 10h ;interrupcion del BIOS
mov ah,02h
mov dx,0
mov bh,0
int 10h
ret
clrscr endp
mov ax,4c00h
int 21h
codigo ends
end inicio
Valora esta pregunta


0