Quizas no lo haya aprendido lo que es debido, pero leer lo he leido y lo voy entendiendo. Voy a buscar mas manuales, thanks
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú#include <stdio.h>
#include <string.h>
int main()
{
char palabra[20][20];
char busqueda[20]="";
char palabra_aux[20];
int i, k, h, primero=0, ultimo=19, centro=10;
for(i=0;i<20;i++){
strcpy(palabra[i],"");
}// limpia el array
for(i=0;i<5;i++){
printf ("Introduce una palabra:");
scanf ("%s", &palabra[i]);
}// coge 5 palabras por teclado
for(k=19;k>=0;k--)
{
for(h=0;h<k;h++)
{
if((strcmp(palabra[h],palabra[h+1])>0) && (strcmp(palabra[h+1],"")!=0))
{
strcpy(palabra_aux,palabra[h]);
strcpy(palabra[h],palabra[h+1]);
strcpy(palabra[h+1],palabra_aux);
}
}
}//ordena la lista
i=0;
while(i<5)
{
printf ("Introduce una palabra para ver si se encuentra en la lista: ");
scanf ("%s", &busqueda);
primero=0;ultimo=19;
while ((primero<=ultimo) && (strcmp(busqueda,palabra[centro])!=0))
{
centro=(primero+ultimo)/2;
if (strcmp(busqueda,palabra[centro])<0){primero=centro+1;}
if (strcmp(busqueda,palabra[centro])>0){ultimo=centro-1;}
printf("centro vale %d\n", centro);
}// busca en la lista
if (strcmp(busqueda,palabra[centro])==0) {printf ("La palabra se encuentra en la lista :)\n");}
else {printf ("La palabra no se encuentra en la lista :(\n");}
i++;
}// lo busca en 5 ocasiones
getchar();
return 0;
}
Cita de: Eternal Idol en 18 Julio 2010, 10:15 AM
Depende para que podes usar registros de 8 y 16 en modo protegido perfectamente, igual este codigo es para MS-DOS ya que usa los servicios del mismo (int 21h) y esos estan disponibles solo en modo real (16 bits).
.386
.model flat, stdcall
option casemap :none
;32 bits
.stack
.data
saludo db "Hola mundo!!!$"
.code
start:
mov ax, data
mov ds, ax
mov ah, 09
lea dx, saludo
int 21h
;mensaje en pantalla
mov ah, 4ch
int 21h
;termina programa
end start