PREGUNTAS CONTESTADAS - C/Visual C

 Hay un total de 745 Preguntas.<<  >> 

    Pregunta:  31 - INT. O FORMA DE LEER/ESCRIBIR EL NUMERO DE SERIE DEL VOLUMEN
Autor:  JairA.
Deseo conocer la interrupción o la forma de leer/escribir el numero de serie del volumen que aparece al dar DIR y que es asignado automáticamente al formatear un disco o disquete, preferiblemente la forma de accesarlo desde C o Assembler, no algo hecho.
Gracias
  Respuesta:  Alvaro Salvatierra
Te sugiero usar la función API de Windows: GetVolumeInformation() , en su primer parámetro se especifica la unidad ( p.ej. "A:" o NULL para la unidad desde donde se ejecuta la llamada) y en el cuarto parámetro se especifica el puntero a la variable que recibirá el número de volumen ( p.ej. & dwvolserial, siendo dwvolserial definido como unsigned long)

Saludos
  Respuesta:  Vicente Serrano
1.-Crea un fichero con un directorio (el de trabajo)(Ejemplo: DIR >ficheros.txt)
2.-Dentro del programa, abre el fichero.txt, en bajo nivel, y puedes tomas el numero del Disco Duro.
3.-Puedes borrar el fichero.txt
VSF
  Respuesta:  Pablo Castrillon
Este es un archivo por lotes (tomado de la PC Magazine) que utiliza el debug del DOS, con el puede modificar el numero serial de cualquier unidad de disco. Espero que esto te sirva de respuesta.
Ver resp31.txt
  Respuesta:  Endos
Este programa de ejemplo viene incluido con el Borland C++. El programa es específico de este compilador, pero es facilmente adaptable a ensamblador.
Ver resp31b.txt

    Pregunta:  42 - IMPLEMENTAR LAS MATRICES CON PUNTEROS EN C++
Autor:  Daniel
Parece ser que hubo problemas con una pregunta que hice el otro día, así que voy a intentar aclararla:
Estoy intentando implementar el tipo matrices (en C++). La manera lógica era, como ha respondido la mayoría de la gente, hacerlo con arrays.
Pero esto tiene el problema de que tienes que imponer el tamaño de la matriz en el momento de la programación (si no fuera así, por favor, decirme como se hace), lo que limita mucho el programa.
La otra forma lógica de hacerlo es con punteros. Con punteros té quitas el problema del tamaño, ya que en tiempo de ejecución del programa puedes decidir qué tamaño va a tener la matriz con la que vas a trabajar. Pero aparece el problema de la memoria (en el supuesto de trabajar con matrices muy grandes).
Y mi pregunta sería : ¿Implementando las matrices con punteros, hay alguna forma especialmente eficiente de hacerlo?
Esperando que quede aclarada la pregunta, espero vuestra contestación.
  Respuesta:  Daniel Salazar
Hola Tocayo:
Lo que quieres hacer (matrices vía punteros) es posible con punteros dobles. Te coloco este ejemplo para enteros:
int **matriz,filas,columnas;
void main(){
//puedes leer los valores de filas y columnas como te convenga
//acá los coloco como una asignación simple
filas = 5;
columnas = 3;
matriz = new int* [filas];
for(int i=0;i<filas;i++)
matriz[i] = new int [columnas];
//luego puedes acceder a cada posición con la notación matricial
matriz[1][1] = 10;
}
//Espero te sea útil
  Respuesta:  jenny jenny
hola:
con la lista de la que te hablan los demas podes usar una funcion llamada malloc que va piediendo memoria a medida que la vas usando o necesitando
espero que te sirva
bye
pd: en el help tenes los parametros que le tenes que pasar lo que te debue es la direccion de memoria en la que vas a guardar ese nodo
bye
  Respuesta:  alguien
Lo que quieres hacer se puede hacer de varias maneras, se denomina array indeterminado; lo puedes crear por lista enlazada, arbol binario, técnicas hash(extraer el indice de un elemento del array directamente de la información guardada en él) y por array de punteros; es demasiado extenso para explicarlo aquí con detenimiento, por lo que te ruego te informes con un buen manual...
  Respuesta:  Sergio
Si lo que pretendes es implementar las matrices has de hacerlo con una lista doblemente enlazada de punteros en caso de dos dimensiones, triplemente enlazada para tres, etc... donde el primer nivel serian las filas de la matriz, el segundo las columnas de una fila en cuestión, y así sucesivamente. En el caso de querer implementar matrices casi vacías (donde un valor se repite muchas veces), puedes prescindir de codificar este valor e implementar en la lista solo los valores que son distintos a este, incluyendo en nodo de la lista índices que te indiquen la posición de ese elemento, por ejemplo, si quieres implementar la matriz identidad de 4x4 seria algo parecido a [1000][0100][0010][0001], como el valor cero se repite mucho, se codifica solo los valores 1, de manera que cada nodo de la lista tiene un cursor que indica fila y columna del valor distindo de cero, algo parecido a [fila1,col1:1][fila2,col2:1][fila3,col3:1][fila4,col4:1] de forma que consigues representar un elemento bidimensional (matriz de 4x4) con una sola lista unidimensional, lo que simplifica el trabajo de programación y optimiza la ocupación de memoria.
  Respuesta:  Willser F. González C.
La siguiente estructura implementa una matriz usando listas enlazadas:
typedef struct Nodo
{
char cCdgo[5]; // El tipo de dato que necesite en cada campo de la matriz.
Nodo *Antrior, *Sgnte, *Arrba, *Abjo; // Obligatorio.
}nNdo;
La clave está en implementar las funciones que permitan ubicarse en una posición [i,j] de la lista en forma de matriz 2D.
Esta sería la matriz:
-----------------------------------------------
N1,1 N1,2 ... N1,j
¦ ¦ ¦ ¦
N2,1 N2,2 ... N2,j
¦ ¦ ¦ ¦
...... ......... ... .......
¦ ¦ ¦ ¦
Ni,1 Ni,2 ... Ni,j
-----------------------------------------------
Cada nodo N tiene un puntero a sus nodos adyascentes, en caso de no tener algún nodo adyascente, este apuntará a NULL. Por ejemplo, el nodo Ni,j sería así: *Antrior = Ni,j-1; *Sgnte = NULL; *Arrba = Ni-1,j y *Abjo = NULL.
Si usted ha manejado bien las operaciones como Crear, Modificar, Eliminar o Listar Nodos de una lista simple o doblemente enlazada se le facilitará la implementación, sino, envíame un E-Mail. He hecho una simulación de matrices en Borland C++ usando listas y puedo facilitarte el código. No lo adjunto a esta respuesta porque es un poco largo.
  Respuesta:  Fernando Canzani
Hola, soy de Uruguay, para implementar la clase matriz, te aconsejo que lo agas con punteros, con ellos te puedes crear arrays dinamicos que especificas el tamaño en tiempo de compilacion.
ej:
class array {

private:
int *vector, tope;
public:
/*los constructores y las operaciones que necesites implementar*/

luego haciendo la asignacion
int tamanio;
vector = new int[tamanio];
con esto te definis un array de longitud tamanio en tiempo de ejecucion;

    Pregunta:  43 - BASES DE DATOS EN VISUAL C++ 4.0
Autor:  Mariano
Cuando creo un proyecto en Visual C++ 4.0 y quiero que este tenga soporte para base de datos, me da dos opciones ya sea por la DAO o por la ODBC, pero en ambas me exigen ingresar una base de datos ya creada e indicar las tablas que uso de ellas.
Sin embargo en la aplicación que yo estoy creando, el usuario me puede indicar cualquier nombre de base de datos y cualquier tabla. Existe alguna forma de cambiar la BD y sus tablas en el momento de ejecución?
Bueno si puede , por favor envíame la respuesta pronto. Te estaré eternamente agradecido. Hasta Pronto...
  Respuesta:  Cesar Armando Cruz Mendoza
Hola Mariano:

No es necesario que especifiques algún tipo de base de datos previamente, solo basta con que establezcas tu conexión con el ADO o el ODBC adecuado al tipo de tabla que quieres utilizar, para ello Microsoft ya te ofrece varios ADO que te permiten interactuar con diversos tipos de tablas.

Dices que tu aplicación debe de ser abierta a cualquier tipo de tabla que el usuario especifique, eso es sencillo, basta con que identifiques el tipo de archivo que esta seleccionando (pudiera ayudarte la extensión del archivo) y en base a esto establecer la conexión con el ADO indicado.

Espero que esto te sea de ayuda. Yo estoy terminando precisamente una aplicación en C que maneja archivos DBF por medio de SQL.

Saludos.
  Respuesta:  Alfredo Barrios
Pero por supuesto, crea el proyecto normal, con soporte para base de datos, luego busca donde grabo el nombre de la base datos, entonces intercambia ese dato por una variable, alimenta la variable desde un archivo ini ó como parametro ya sea al inicio de la aplicación o con un cuadro de dialogo que crees para que el usuario indique el archivo y las tablas.
  Respuesta:  Alonso Salazar
Yo tengo el VC5 pero no creo que cambie mucho la interfase del Visual Studio. Crea tu aplicación comúnmente, el AppWizard te creara una clase que hereda de CDaoRecordset en caso de DAO o de CRecordset en caso de ODBC, esta clase contiene una función miembro llamada GetDefultDbName la cual se utiliza para la construcción del objeto y esta retorna la dirección de la base de datos necesaria, luego existe también otra que se llama GetDefualtSQL la cual retornara la tabla que se desea abrir, con lo indicado anteriormente podrás abrir cualquier base de datos indicada, el único problema es que deberás manejar los campos a mano, debido a que cada campo de la tabla que selecciones en el Wizzard este automáticamente te lo pone como un dato miembro del Record Set y de esta manera se maneja los campos si no sabes o no tienes una noción de los nombres o tipos de datos que se abrirán deberás manejas esto a mano como un vaquero, existe un ejemplo en el VC que yo tengo en el cual uno selecciona una base de datos y el programa lee todas las tablas y campos que se tienen en la BD y me permite cambiar y otras cosas si lo necesitas comunícate con migo y te lo doy el ejemplo.

    Pregunta:  47 - CONTROLAR EL RATON EN C
Autor:  Ramon
Me gustaria saber las instrucciones en C para controlar el ratón. Estoy haciendo un programa de dibujo estilo Paintbrush en Turbo C++ 1.01.
  Respuesta:  RENE CABALLERO
tengo un programa estilo paint en borland c++ 5.01 con manejo del raton,seleccion de color ,lineas y rellenos.
  Respuesta:  Hugo Aquino Navarrete
Actualmente cuento con una rutina para poder manejar el ratón con la posiblidad de añadir más punteros a una resolución mayor de 640 x 480 a 16 colores, o sea 640 x 480, 800 x 600, 1024 x 768 y 1280 x 1024 todas a 256 colores, así como el BGI para inicializar el monitor a esas resoluciones y por lo tanto darle mayor presentación a su interfaz gráfica.
  Respuesta:  Nock-fort
Yo tengo unas más féaciles en ensamblador aquí estan:

int posicionvertical(){
asm mov ax, 03h
asm int 33h
return _CX; CX= posicion vert.
}
int posicionhorizontal(){
asm mov ax, 03h
asm int 33h
return _DX; DX= posicon hori.
}

int botonpulsado(){
asm mov ax, 03h
asm int 33h
return _BX; BX = boton pulsado 0 = ningun boton
} 1 = izq.
2 = der.
int mostrarpuntero(){
asm mov ax, 01h
asm int 33h
}

int ocultarpuntero(){
asm mov ax, 02h
asm int 33h
}

para moverlo registro de entrada
ax = 04h
cx = posicion horizontal
dx = posicion vertical
  Respuesta:  Gustavo Muro
debido a la demanda de la rutina aqui esta resp47.txt
  Respuesta:  Gustavo Muro
Tengo una rutina de manejo de ratón, si te interesa, mándame un email.
  Respuesta:  Jorge Gutierrez
Si te interesa poder crear tus propias funciones que manipulen el raton, te recomiendo que utilices las interrupciones del dos, (que en este caso le corresponde a la interrupcion 33H). Algunos ejemplos son los siguientes:
COMPROBAR LA INSTALACIÓN DEL MOUSE
void comprueba (void){
union REGS registro;
registro.x.ax = 0; //Es la funcion que comprueba
int86(0x33,®istro,®istro); //Realiza Interrupcion
if (registro.x.ax == 0){
printf("Existe controlador para raton\n");
}else
printf ("No existe controlador para raton\n");
}
return
PARA VISUALIZAR EL CURSOR DEL RATON
void visualiza(void){
union REGS registro;
registro.x.ax = 1; // funcion para ver cursor
int86 (0x33,®istro,®istro); //Sorpresa Puedes
//ver el cursor
getch (); //pulsar cualquier tecla
registro.x.ax = 2; // funcion para no ver cursor
int86 (0x33,®istro,®istro); //desactivar cursor
return
Te interesa!!! Mandame un e-mail
  Respuesta:  Sergio Pacho
Puedes encontrar una rutina para controlar el ratón en http://www.programando.com/c/cworld

    Pregunta:  69 - AYUDA EN VISUAL C++ 5
Autor:  Alonso
Necesito algún buen samaritano que me ayude con el Visual C++ 5 ya que no he podido comprender el método de programación que propone Microsoft en este, he logrado hacer algunas aplicaciones pero solo con ayuda de libros, necesito alguna guía para la MFC 4.21 y sobre el ambiente de programación, alguien me puede ayudar o indicar donde puedo conseguir información sobre esto, ya que Microsoft en mi país (Costa Rica) ni las escuelas certificadas por ellos tienes personas preparadas para ello.
  Respuesta:  Mano
Esixte un web, en el que puedes encontrar un manual introductorio al Visual C++ 5.0 http://www.iftech.com. A mi me ha ido muy bien, considerando que como tu hace 3 dias no sabia nada del Visual C++ 5.0

    Pregunta:  88 - ENVIAR DATOS A TRAVÉS DEL PUERTO PARALEL
Autor:  Jesus
Quisiera saber como podía hacer mis circuitos eléctricos y controlarlos por un programa mío en C++.
Para ello, querría saber como enviar un 0 ó un 1 a través del puerto paralelo.
Os ruego que contestéis. Gracias. :-)
  Respuesta:  Rosalío Morales Rizo
Pues yo he utilizado las funciones de C
inportb y outportb (para 8 bits) bajo Visual C
y no hay ningun problema, bueno el problema se
presentaria si corres tu programa bajo un NT (por aquello de las peticiones de acceso a puertos...)

Por lo general la dirección de salida para un puerto paralelo se encuentra en la 0x378... asi que si quieres "activar" el bit uno del puerto paralelo (pin 2 del DB25), podría ser:
outportb(0x378,1);

Ahora bien, si lo que deseas es leer un dato, la entrada esta por lo general en la 0x379 (esto depende de la dirección fisica de tu puerto paralelo...) mmhh no todos los bits de este registro son de entrada, y uno esta invertido...
podrias leer entonces con algo como
mi_variable=inportb(0x379);

Yo he podido leer 8 datos del puerto paralelo
juntando la información de la dirección 0x379 y
0x37A...

Nota: Las direcciones que pongo no son absolutas
cambian de ordenador a ordenador... (asi como puede encontrarse a partir de la dirección 0x378, puede ser que este en la 0x3BC, 0x278,0x2BC,...)
  Respuesta:  Armando Nava
Es muy sencillo en C cuentas con la funcion

outport(889,2);
/*Envias un 00000010 a los pines de salida */


/*la configuracion de puerto la puedes encontrar en algun libro de ensamble de computadoras */

//y para leer el puerto

unsigned int dato=inport(888);
  Respuesta:  Pachi
Yo he logrado enviar datos a través del puerto paralelo, a través de una dll (Win95io.dll), si me proporcionas tu dirección electrónica, te la paso, yo le he programado en VB4, pero supongo que no será un problema.
  Respuesta:  Julio Alejandro
Es fácil, solo tienes que direccionar el puerto de salida y el dato de tipo caracter, si sabes Hexadecimal o Binario podrás fácilmente manipular los 8 bits, esta función esta provada en C++ 3.0
void Out(unsigned char dato)
{ asm{
mov  dx,0378h
in al,dx
xor al,dato
out dx,al
}
}
Ademas realiza una Or Exclusiva para que si algún pin estaba en 1, lo pone a 0 o si ya había algun dato, lo mantiene. Gracias
  Respuesta:  Cesar Quispe
No si tengas nocion de assembler, conocerlo te da mas posibilidades de entenderlo y luego pasarlo a c++ es mas facil, si es asi me gustaria me escribas.

El enviar datos por el puerto paralelo es bastante facil, lo unico que tiene que verificar es el puerto presente el el pc, los mas conocidos son 3bch, 278h y 378h, esto lo puedes averiguar utilizando el MSD del DOS.

En assembler:

**Describire lo que hace el programa:
1.-Carga la direccion de la variable puerto en dx(puerto debe ser alguna direccion ej. 3bch),que el puerto de la impresora este presente en el PC.
2.-Luego lee si se ha presionado alguna tecla, si no es asi permanece en un blucle hasta que se presione una tecla.
3.-Si la tecla presionada es la tecla Esc ( 1bh) termina el programa.
4.-Se imprime el dato por pantalla , si es otro dato.
5.-Se envia el dato que se encuentra en AL(registro AL).
6.- regresa al inicio.
7.-Fin

Nota: Como se habra notado el programa acepta todo tipo de datos,pero el que lo desee probar debera hacerlo solo con numeros.Este programa lo he empledo para ver lo que envio y comprobar si es el dato que encuentro a la salida, y ¿como?, facil coloquen un led ala salida de de cada uno de los pines que conforman el bus de datos de la impresora y verifiquen.

Codigo segment
Assume cs:codigo
inicio:
vez: mov dx,puerto ; (1)
leo:mov ah,01h ; (2)
int 16h
jnz leo
cmp al,1bh ; (3)
je FIN
mov dl,al ; (4)
mov ah,2
int 21h
OUT dx,al ; (5)
jmp vez ; (6)
FIN: mov ah,4ch ; (7)
int 21h
codigo ends
end inicio
EN C++
/* programa que envia caracteres */
#include
#include

unsigne char valor; /* variable usada para enviar datos sin signo*/

main()
{
int a;
for (a=0;a<=10;a++) /* para enviar 10 datos */
{
printf("Ingrese el dato %a a enviar\n",a);
scanf("%c",&valor);
outportb(0x3bc,valor); //envia el dato contenido en valor
}
}

No he tenido tiempo de probarlo,actualmente trabajo en un programa utilizando el puerto paralelo , si tienes algun problema puedes escribirme

    Pregunta:  108 - IMPLEMENTACIÓN DE LOS METODOS DE HASHING POR DIVISION Y MULT
Autor:  BastardMan
Necesito saber la implementación, aunque sea con pseudocodigo, de los metodos de Hashing por division y multiplicación en C o C++, o bien las funciones hash mas utilizadas en programación. Gracias
  Respuesta:  sinapse
Hash por division:
int hash_div(int numero,int tamano_tabla)
{
return (numero%tamano_tabla);
}

Hash por Multiplicacion:
Ahora mismo no me acuerdo, pero era muy corta. Escribeme y te la digo
  Respuesta:  Fernando Castro
Ante todo un saludo.
Referente a la implementacion de Hashing o comunmente conocido como implementacion de tablas Hash, decirte que existe varios tipos de Hash.
Su existencia se debe fundamentalmente a la teoria de las colisiones en tablas hash. El hashigh ,que creo que lo sabes, consiste en el acceso directo a un registro de una tablas. Para el caso de las colisiones, existe el anterior mente mencinado abierto y cerrado(hashing).Personalmente utiliza el hash por division en modulo, por lo que, si te interesa el codigo de la funcion comunicamelo. Para el caso de hash de division solo habra que cambiar el algoritmo.
Es especialmente recomendado en tablas que contengan estructuras.
Si me explicas mas a fondo que quieres hacer, te puedo ayudar mas a fondo
Saludos
  Respuesta:  Carlos Barrantes
Revisa la funcion GetSystemMetrics del sistema:
Declare Function GetSystemMetrics Lib "User32" (ByVal n As Integer) As Integer
Esta te devuelbe valiosa informacion acerca del sistema, como detectar si el mouse está conectado a la PC, por ejemplo.

    Pregunta:  114 - LEER ARCHIVOS GRÁFICOS
Autor:  Jorge
Como puedo leer un archivo Gif (o cualquier otro) para poder mostrarlo en pantalla en C/C++
  Respuesta:  David Esparza
Puedo facilitarte la forma de leer un fichero .PCX o .BMP. Lo parte más importante es la estructura a utilizar para leer el fichero. Si te interesa puedo mandarte unos listados de ejemplo.
  Respuesta:  Sergio Pacho
Puedes encontrar una rutina para leer archivos .PCX en http://www.programando.com/c/cworld
  Respuesta:  Jose Manjon
Para leer archivos graficos existen multitud de librerias que te pueden resolver la papeleta ...

Te aconsejo un paquete de librerias que se llama CIMAGE, con este paquete puedes leer imagenes BMP,JPG,GIF,PCX,PNG,etc ..

Ademas incluye una demo para que veas la utilizacion de cada uno de los metodos ...

Este paquete lo puedes encontrar en:
http://www.visionx.com/mfcpro/code.htm

suerte

  Respuesta:  Douglas Cruz
hola, tengo un ejemplo que lee un archivo gif, si lo necesitas aun mandame un correo

    Pregunta:  118 - LISTADO DE INTERRUPCIONES EN C+
Autor:  JuanCarlos
Hola Amigos, mi pregunta es si alguien tiene un listado completo de interrupciones en C++. De antemano Gracias!!!
  Respuesta:  Rosalío Morales Rizo
0H Divide by zero exception
1H Single step
2H Nonmaskable
3H Breakpoint
4H Overflow
5H Print screen (BIOS)
6H RESERVADA
7H RESERVADA
8H Time of day service (Hardware)
9H Keyboard service (Hardware)
AH RESERVADA
BH Communications service COM2
CH Communications service COM1
DH Disk service(IRQ5 fixed disk adapter)
EH Diskette service(IRQ6 floopy disk adapter)
FH Printer service (IRQ7 LPT1)
10H Video I/O
11H Equipment check
12H Memory size
13H Disk I/O
14H Comuunications
15H PC:cassette, AT: extended services
16H Keyboard I/O
17H Printer
18H Resident BASIC
19H Bootstrap
1AH Time of day
1BH Keyboard break
1CH Timer tick
1DH Video parameters
1EH Disk parameters
1FH Video graphics
20H Program termination
21H General function services
22H Terminate address
23H CTRL-C exit address
24H Critical-error-handler address
25H Absolute disk read
26H Absoulte disk write
27H Terminate/stay resident
28H Idle handler
29H
.
. RESERVADAS... tanto por DOS, BIOS...
.
66H
68H
.
. SIN UTILIZAR...
.
6FH

a esta lista le faltan unas cuantas... pero al menos es una idea de las existentes...
  Respuesta:  Enrique Carro
Si te refieres a las interrupciones del DOS, existe una lista (inmensa), recopilada por Ralf Brown, donde encontraras todas las documentadas y una gran parte de las que no. Puedes encontrarla en multitud de sitios en la red (buscando por el nombre del autor). Uno de estos lugares es el Grupo Universitario de Informatica (GUI), en la siguiente direccion:

ftp://ftp.gui.uva.es/pub/doc/interrupt/dos

En otros tiempos, esa misma asociacion proporcionaba dicho listado en formato impreso, a precio de costo. No se si seguiran haciendolo.
  Respuesta:  Jorge Gutierrez Bustos
Hola amigo ...
En cuanto a tu peticion te mando esta lista que contiene la lista de interrupciones, si quieres las funciones mandame un e-mail con la interrupcion que te intereso, y yo te mandare la lista de funciones para esa interrupcion.
EN FORMA GENERAL SON ESTAS (PERO FALTA SUS FUNCIONES)
10H Presenta los servicios de video
13H Servicios de Disco
14H Servicios de Cominicaci¢n en serie
16H Servicios de teclado
17H Servicios de Impresora
1AH servicios de reloj
11H Obtener configuracion
12H Obtener memoria convencional
18h Llamar ROM-BASIC
19H Reinicializar el sistema
15H SERVICIOS VARIOS // SUS FUNCIONES SON MUCHAS E INTERESANTES!!! :)
UFF. SON TODAS LAS QUE HE APRENDIDO :)
PD. NO LISTE SUS FUNCIONES PORQUE VERDADERAMENTE SON MUCHAS Y EN TODO UN DIA NO TERMINARIA..

    Pregunta:  124 - SALTAR A LA DIRECCION DE MEMORIA ffff:000 EN BORLAND C++
Autor:  Domingo
Tengo que hacer un salto a la dirección de memoria, y no sé como hacerlo desde Borland C++ 3.0. Una posible solución es utilizar asm {jmp..} pero no sé lo que va despues de jmp.
  Respuesta:  Miguel Sepúlveda
Creo que puede ser de las siguientes formas:
asm jmp ffff:0000 ó
asm jmp 0ffffh:0h
Espero que te sirva. Hasta otra.
  Respuesta:  Endos
Supongo que deseas hacer un ´reboot´ del ordenador y por eso deseas llamar esa dirección. Esto compila con Borland C++ 4.5, supongo que con la versión 3.0 también.
void reset(void)
{
void (far *reboot)(void);
(void far *)reboot=MK_FP(0xFFFF,0x0000);

*((unsigned char far *)MK_FP(0x0040,0x0072))=0x0000; // ARRANQUE EN FRIO
(*reboot)(); // LLAMAR DIRECCION FFFF:0000

exit(0); // ESTO NUNCA DEBERIA EJECUTARSE
}

|<  <<  1 2 3 4 5 6 7 8 9 10 11  >>  >|