EJERCICIO MSDOS

Iniciado por ed-C, 19 Enero 2005, 03:54 AM

0 Miembros y 1 Visitante están viendo este tema.

Ineluki

#10
Cita de: Morphmitrio en  1 Diciembre 2006, 04:56 AM
Utlizando DEBUG cree la Orden S_O_NO.COM para que el usuario teclee S o N bueno manos a la obra:

C:\>Debbug S_O_NO.COM <intro>

-A 100 <Intro>
2707:0100 MOV  AH,  0  <Intro>
2707:0102 INT   16        <Intro>
2707:0104 MOV  AL ,  0  <Intro>
2707:0106 CMP  AH , 15 <Intro>
2707:0109 JE     112       <Intro>
2707:010B CMP  AH, 15  <Intro>
2707:010E JE     114       <Intro>
2707:0110 JMP   100       <Intro>
2707 :0112 MOV  AL, 1     <Intro>
2707:0114 MOV  AH, 4C  <Intro>
2707:0116 INT    21         <Intro>
2707:0118 <Intro>
-R CX <Intro>
CX 0000
:18  <Intro>
-W   <Intro>
Escribiendo 00018 bytes
-Q <Intro>
Este código esta mal, después de llamar al servicio de teclado pones al a 0 y ya no puedes comparar el código ASCII, además pones el mismo número tanto para s como para n, el código ASCII se guarda en al no en ah, en ah se guarda el código de búsqueda.
Paa vitaepe que pregunta que significa el código:
Esto es un código en ensamblador que llama a un servicio del teclado de la BIOS, y comprueba si la tecla s o n estan pulsadas, cuando lo estan devuelve una salida para cada una de las teclas, para s 1 y para n 0 ( al menos eso creo que quería hacer él )
ahí va el código arreglado:

debug
a
mov ah,0
int 16
cmp al,73
je 10e
cmp al,6e
je 112
jmp 100
mov al,1
jmp 114
mov al,0
mov ah,4c
int 21

r cx
18
n siono.com
w
q


Simplemente se pega eso al símbolo del sistema ( ventana negra ) o se hace un bat con el código y se ejecuta, y ya tendras el comando siono, para poder usarlo mueve el archivo siono.com a C:\windows o a C:\windows\system32.
Un posible uso:

@echo off
echo Quieres hacer tal cosa s/n?
siono
if %errorlevel%==1 goto siquiero
if %errorlevel%==0 goto noquiero

.Undertaker.

No seria mejor usar set /p¿¿??




                 

"MI WEB"

.Undertaker.

#12
Vi el choice de sakura-san...Como creaste el .exe??? cn un ensamblador???...Como se ace?? quiero aprender a acer *exe `s 

...I de paso necesito ayuda...Miren el code

@echo off
msg * bienvenido a las opciones del menu:
cls
title Menu
:menu
cls
echo -_-_-..··***Menu principal***··..-_-_-
echo,
echo 1.Abrir calculadora
echo 2.Abrir un documento
echo 3.Salir del menu

set /p opciones=
if %opciones%==1 goto calculadora
if %opciones%==2 goto documento
if %opciones%==3 goto exit
pause>nul

:calculadora
@echo off
title CALCULADORA--------Creado por Undertaker
cls
echo --------------------------MENU----------------------------------
echo, 
echo 1.SUMA
echo 2.RESTA
echo 3.MULTIPLICACION
echo 4.DIVISION
echo,   
echo 5.SALIR

set /p opt=
if %opt%==1 goto suma
if %opt%==2 goto resta
if %opt%==3 goto multi
if %opt%==4 goto division
if %opt%==5 goto exit-calculadora

:suma
cls
set /p suma1=Primer caracter:.....................
echo                                        +
set /p suma2=Segundo caracter:....................
echo                                  ___________
set /a suma3=%suma1%+%suma2%
echo resultado:                            %suma3%
set /a suma3=%suma1%+%suma2%
echo Pulse una tecla para volver al menu
pause>nul
goto calculadora
:resta
cls
set /p resta1=Primer caracter::.....................
echo                                        -
set /p resta2=Segundo caracter::....................
echo                                  ___________
set /a resta=%resta1% - %resta2%
echo resultado:                            %resta%
echo Pulse una tecla para volver al menu
pause>nul
goto calculadora

:multi
cls
set /p multi1=Primer caracter::.....................
echo                                        x
set /p multi2=Segundo caracter::....................
echo                                  ___________
set /a multi=%multi1% * %multi2%
echo resultado:                            %multi%
echo Pulse una tecla para volver al menu
pause>nul
goto calculadora

:division
cls
set /p divi1=Primer caracter::.....................
echo                                      ___
set /p divi2=Segundo caracter::....................
echo                                  ___________
set /a divi=%divi1% / %divi2%
echo resultado:                            %divi%
echo Pulse una tecla para volver al menu
pause>nul
goto calculadora

:c
cls
echo Ok, presione una tecla para volver al menu de la calculadora
pause>nul
goto calculadora

:sal
cls
echo Ok, presione una tecla para salir
pause>nul
exit
pause>nul

:documento
cls
echo ola, soy un chico k kiere aprender batch...Me enseñas??
echo,
echo,
echo presione una tecla para ver opciones
pause>nul
echo Seguir leyendo [Presione (y)]
echo Salir al menu principal [Presione(N)]
echo Salir [Presione (x)]
set /p O=
if %O%==y goto documento
if %O%==n goto menu
if %O%==x goto sal

:exit
cls
echo esta seguro de salir?
echo si [s]
echo no [n]
set /P op=
if %op%==s goto sal
if %op%==n goto menu

:exit-calculadora
cls
echo No,seguir calculando [presione s]
echo Si,Volver al menu principal [presione n]
echo Si,Salir completamente [presione x]
set /p i=
if %i%==s goto calculadora
if %i%==n goto menu principal
if %i%==x goto sal




Me pueden explicar i arreglar xk si voi al menu "documento" i pulso 1 se dirige al menu "sal"??

Nota:el menu "Calculadora y submenus(sumar,restar,multiplicar y dividir)" fue creado por Zynhar_X o algo asi..jeje




                 

"MI WEB"

Ineluki

CitarVi el choice de sakura-san...Como creaste el .exe??? cn un ensamblador???...Como se ace?? quiero aprender a acer *exe `s

Un exe se puede crear tanto en ensamblador como en qualquier lenguaje de programacion solo necesitas un enlazador capaz de generar exes
No se en que lenguaje lo habrá programado sakura-san

CitarNo seria mejor usar set /p¿¿??
Pues si, pero tanto el programa de sakura-chan como el que he correjido yo no necesitan que teclees enter.

CitarMe pueden explicar i arreglar xk si voi al menu "documento" i pulso 1 se dirige al menu "sal"??
De hecho eso pasa si no pones ninguna de las opciones que has especificado. Puedes poner que vuelva al menu donde estabas si el usuario no teclea ninguna de las opciones con un else después de los ifs

Shadowofvilla

muchas gracias a todos por la ayuda que dan
saludos

jordi111

HOla amigos, feliz año.

Solamente una consulta a traves de MSDos se puede editar un fichero de texto y por ejemplo reemplazar todas las letras X por letras Y y guardar el fichero de nuevo de una manera automatica con un BAT.

Si me ayudais me hareis un gran favor , gracias hackeros.

leogtz

Sí, consulta esto:
http://foro.portalhacker.net/index.php/topic,36611.0.html


El tema, sustitución o extracción de caracteres.

Consulta el comando SET.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

jordi111

Gracias, leo.
Pero el problema lo tengo en que los caracteres que quiero cambiar estan creados en un fichero .TXT y mi idea es cambiarlo y crear un nuevo TXT, mi problemilla esta en editarlo y cambiar los caracteres x por Z (me serviria el comando SET) y guardarlo en un nuevo .TXT.

Gracias de todos modos

leogtz

Es fácil, suponte que tenemos el archivo "file.txt" con el siguiente contenido:

C:\>type file.txt
x-men
Lox gallox cantabanx muy felixex
Char : X
Algo : X
X-_-X
C:\>


Queremos cambiar las X por Z:

Código (dos) [Seleccionar]
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%_ in (file.txt) do (
set "texto=%%_"
echo !texto:x=Z!
)
set /p "="


Si quieres volcar la salida a un archivo de texto:
Código (dos) [Seleccionar]
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%_ in (file.txt) do (
set "texto=%%_"
echo !texto:x=Z! >> "nuevo.txt"
)
set /p "="


Saludos.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

jordi111

Buenas, Leo:

Te tengo que dar las gracias me has hecho un gran favor, era justo lo que necesitaba.


Gracias.