Foro de elhacker.net

Programación => ASM => Mensaje iniciado por: neo_from_cs_matrix en 22 Agosto 2011, 01:30 am



Título: getch propia para no usar getch de conio
Publicado por: neo_from_cs_matrix en 22 Agosto 2011, 01:30 am
este es un requerimiento, necesito esta funcion getch andando por favor, la parte principal esta en este lenguage que no entiendo, y encima lo debo estudiar ironicamente para mi uni, parecen 3 lineas pero no se que hacen y no anda, me tira error cuando la trato de usar. alguno puede arreglar esta funcion se lo agracederia

Código:
unsigned char GETCH(void)
{
unsigned char key;

_asm
{

start:
mov ah,0
int 0x16
cmp al,0
je start ; don't process special keys
mov key,al
}

return key;
}



Título: Re: getch propia para no usar getch de conio
Publicado por: Eternal Idol en 22 Agosto 2011, 10:58 am
Este codigo (de MS-DOS) llama al servicio 0 de la interrupcion 16h. Aca podes leer que hace exactamente:

http://www.ctyme.com/intr/rb-1754.htm


Título: Re: getch propia para no usar getch de conio
Publicado por: neo_from_cs_matrix en 24 Agosto 2011, 18:39 pm
perdon pero el codigo ese de ms dos es de 16 bits segun dicen en la fuente, pero entiendo que compilandolo con visual studio que es un compilador de 32 bits va a funcionar este codigo?

de hecho asi como esta no funciona porque tira error de memoria, por eso decia ..
en dicho caso , como se hace para que un codigo asi de 16 bits ande en 32 bits


Título: Re: getch propia para no usar getch de conio
Publicado por: Eternal Idol en 24 Agosto 2011, 18:43 pm
No podes, solamente podrias ejecutar ese codigo con un programa de 16 bits (Windows lo emula). Lo que si podes hacer es usar la API de Windows para obtener la misma funcionalidd ...