Ensamblador - Una ayudita con las funciones 39h,2ah y 3bh

 
Vista:

Una ayudita con las funciones 39h,2ah y 3bh

Publicado por Mario (2 intervenciones) el 23/06/2008 17:43:33
Hola buenas, resulta de que me han mandado la siguiente practica y estoy atascado.

La practica es la siguiente:
---------------------------------------------------------------------------------------------------------------------------------------
Realizar un prgrama en ensamblador que lea una cadena de caracteres y permita crear, borrar o cambiar a un directorio con ese nombre como opcion de menu:

-A la cadena se le debe omitir el caracter ENTER.

-Se pueden emplear las funciones:39h(crear), 3Ah(eliminar) y 3Bh(cambiar a).

-DS:DX puntero al nombre del directorio
--------------------------------------------------------------------------------------------------------------------------------------
Ahora mismo lo que llevo hecho es:

dosseg
.model small
.stack
.data

Texto1 DB "Introdce el nombre del directorio a crear/borrar/cambiar a:",13,10, "$"
Texto2 DB "Pulsa el numero correspondiente segun la opcion que quieras:",13,10, "$"
Texto3 DB "1. Crear , 2. Borrar , 3. Cambiar a: ",13,10,"$"
Texto4 DB "Fin del programa",13,10, "$"
Directorio DB "c:prueba"0
Opcion DB ?
.code

inicio:

mov ax, @data
mov ds, ax

lea dx, Texto1 ,imprime en pantalla Texto1
mov ah, 9
int 21h


;aqui viene la entrada del directorio pero que no la activo porque he puesto yo uno ya
; mov ah, 0Ah ,entrada desde teclado el nombre del directorio a manipular ;
;lea dx, Directorio
;int 21h

lea dx, Texto2 ,imprime en pantalla Texto2
mov ah, 9
int 21h

lea dx, Texto3 ,imprime en pantalla Texto3
mov ah, 9
int 21h

mov ah, 1 ,entrada desde teclado la opcion deseada
int 21h

mov opcion, al

cmp opcion ,31h
jz crear_dir

cmp opcion ,32h
jz borrar_dir

cmp opcion ,33h
jz cambiar_dir

crear_dir:

mov dx,offset Directorio
mov ah, 39h
int 21h
cmp ax, 00h
jz fin

borrar_dir:

mov dx,offset Directorio
mov ah, 3Ah
int 21h
cmp ax, 00h
jz fin

cambiar_dir:

mov dx,offset Directorio
mov ah, 3Bh
int 21h
cmp ax, 00h
jz fin

fin:

lea dx, Texto4
mov ah, 9
int 21h
mov ah, 4ch
int 21h

end

Muchas horas y solo e llegado a esto que no es ni la decima parte de lo que me piden. Como no sabia como hacer para que el directorio que entraba desde teclado fuese el que luego utilizase el programa puse uno por defecto para ver si por lo menos las funciones las puse bien, y funcionan todas a excepcion de "cambiar a". A parte no tengo ni idea de como omitir la tecla enter y como validar entonces los datos introducidos :S.

A ver si me podeis echar una mano o decirme algun sitio donde pueda encontrar practicas similares resueltas que e buscado y rebuscado y no he encontrado ninguna.

Lo que sea me es valido.

Gracias desde ya
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Una ayudita con las funciones 39h,2ah y 3bh

Publicado por Mario (2 intervenciones) el 23/06/2008 18:57:44
por cierto no tengais en cuenta el 2ah del enunciado que me confundi :P, logicamente es 3ah
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar