Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: Cristhian_Rider en 16 Noviembre 2011, 21:38 pm



Título: Problemas con código ASM
Publicado por: Cristhian_Rider en 16 Noviembre 2011, 21:38 pm
buen dia compañeros, soy nuevo en esta comunidad, el motivo de este mensaje es porque ya me atore en un ejercicio de la materia de arquitectura de computadoras, ensamblador

el planteamiento del programa que me pidieron es:
1.- hacer un programa que reciba una cadena del teclado que no se vea y diga si es valido o no.

lo que he solucionado es hacer que no se vea la cadena que escribo, pero si saque un '*', les muestro lo que he hecho (llevo una semana en este problema y aun me faltan otros 10 y son para el viernes :S, pero un poco de ayuda no estaria mal :D):

*tambien tengo un problema con el "inc ch", mi contador de caracteres, al parecer por alguna razon no se incrementa.


Código:
[bits 16]
[segment .data]
msj: db 'escribe una contraseña <o= a 10 caracteres  ',0dh,0ah,'$'
nl: db 0dh,0ah,'$'
con: db 'cristal' ; contraseña a comparar
tc: db 7 ;tamaño de la contraseña a comparar
conr: resb 10 ;caracteres de la cadena recibida
tcr: resb 1 ;tamaño contraseña recibida
fail: db '¡contraseña incorrecta!$'
ver: db '¡contraseña aceptada!$'

[segment .code]
..start:
mov ax,data
mov ds,ax
mov es,ax
mov cl,10
mov ch,0
mov bx,conr
mov di,[tc]; dh tiene un 7

mov ah,09
mov dx,msj
int 21h

pide mov ah,01; usar funcion sin eco, 08
int 21h
inc ch;contador de carateres
cmp al,0dh
je fc
mov [bx],al
mov ah,02
mov dl,'*'
int 21h
inc bx

dec cl;contador de caracteres restantes
cmp cl,0
jne pide
inc bx
mov byte[bx],'$'
fc:
mov ah,09
mov dx,nl
int 21h

;mov dh,0
;mov ch,0
mov [si],ch
cmp ch,1
je verdadero
jne falso


falso: mov ah,09
mov dx,fail
int 21h
jmp fp

verdadero: mov ah,09
  mov dx,ver
  int 21h


fp: mov ah,4ch
int 21h

gracias por su ayuda por adelantado...