Hay un total de 123 Preguntas. | << >> |
Pregunta: | 6126 - INSTRUCCIONES MMX |
Autor: | Sign |
¡Hola!
- Tengo entendido (creo) que el procesador MMX tiene un juegos de 57 instrucciones para usar en ensamblador, agradecería de alguien que me pudiese indicar donde puedo encontrar un tutorial de los mismos para poder tener todo el juego de instrucciones MMX. Gracias. |
Respuesta: | Corys90 Corys90 |
en la pagina de la intel busca lo referente al procesador que necesites y baja el juego de instrucciones para cada procesador, lo encuentras en pdf y preparate para imprimirlo, esa vaina es muy grande en cantidad de hojas,,,,como te digo, en la intel encuentras de todo los juego de instrucciones de los procesadores, inclusive lo de tecnologia itanium que son los ultimos.....es interesante....suerte... |
Respuesta: | Hugo Ortega Hernández |
Hola...
en http://www.x86.org puedes encontrar las guias para el programador de los microprocesadores de intel... ahi viene la referencia técnica de las instrucciones que quieres... claro, en inglés, pero muy buena documentación (es la oficial de intel).... saludos.... EOF |
Pregunta: | 6837 - ¿COMO SE PASAN PARAMETROS EN ENSAMBLADOR? |
Autor: | salvador tojo quintela |
Lo que quiero es pasar parametros a un programa, para utilizarlos dentro del programa para la toma de decisiones dentro del programa. |
Respuesta: | Leonardo Almñana |
Disculpen si les enoja, pero el pibe de la segunda respuesta se equivoco, dijo que era C y era pascal, y ademas segun yo creo el chico que pregunta se refiere a pasar parametros de la linea de comando so
el c seria #Includes ... Definiciones ... int main(int argc,string argv[]){ ... codigo loco ASM mov AX,12H ; ejemplo de statement asm ... return 0; } so en ese codigo llamando mediante la directiva ASM le podes pasar variables de c donde le pasarias algun item del Array Argv[] que es el de contenidos de argumentos, y si queres Argc que es la cuenta de cantidad de argumentos, el que quiera mandeme un mail a [email protected] por que estoy armando un grupito de desarrollo para hacer algunas cosas locas en ASM y C++, se escuchan propuestas. |
Respuesta: | Martín H. Bustos |
De acuerdo a lo que te entiendo sería de la siguiente manera(Utilizando Turbo Pascal v. 7.0):
PROGRAM NOMBRE_PROGRAMA; VAR LETRA:WORD; BEGIN WRITE(´INGRESE UN CARACTER´); ASM MOV AH,00H: {INT. PARA LEER EL CARACT. INGRESADO INT 16H; {DEVUELVE EL CARACTER EN EL REGISTRO AL MOV LETRA,AL; END; WRITELN(EL CARACTER INGRESADO ES: ´,AL); READLN; END. En síntesis. Debes declarar un variable(En el lenguaje que utilizas) de acuerdo al tamaño del registro(De Ensamblador) que quieres pasar como parametro(En nuestro caso AL, tamaño: Word) y luego haz lo que deseas. Cualquier duda sólo mándame un mail.Hasta la próxima !!!. |
Respuesta: | .. ... |
Por lo que medio te entiendo: realizas un proceso en asm y necesitas sus respuestas.
...aplicando C para la toma de los datos Bien, si es así, lo he hecho pasando el valor a un registro principal (ax, bx, ...o por lo menos me ha salido con estos dos), luego y en C los tomo como si estuvieran en unas variables con el mismo nombre, pero en mayúscula : _AX, _BX -> con la rayita. Un ejemplo sería algo así: .. asm mov ax, valor return _AX |
Pregunta: | 6931 - COMO EDITAR UN ARCHIVO DBT |
Autor: | Jaime Enriquez |
Alguien que pueda ayudarme en como lograr extraer los textos de un archivo .DBT de clipper ya que su archivo de enlace (.DBF) se daño y no puedo leer los textos que me son muy necesarios. He investigado sobre la estructura de estos Archivos .DBT y se que ubicando posiciones se en que parte se encuentran los fin del bloque de texto esto es en la dirección 0Dh 0Ah;
Ojala alguien me puedira ayudar. |
Respuesta: | Pablo Mª Miranda Ros |
Hola. No tengo ni idea de ensamblador, pero el problema que comentas yo ya lo sufrí enmi epoca de clipero.
Por lo que has explicado, parece ser que no puedes acceder a los campos memo de una dbf, no? Yo lo solucionaba de la siguiente manera: Creaba una copia del dbf con otro nombre; hacía lo mismo con el dbt y colaba!!!! EL problema será en la relación entre los dos ficheros. Si los vuelves a copiar, te los pondrá ne otra dirección del disco y problema resuelto. Perderas registros, pero no TODOS los registros. Suerte y ya me comentarás si te ha funcionado |
Pregunta: | 7057 - COMO PASAR PARAMETROS A LAS DLLS |
Autor: | pablo saez molina |
Casi todos mis programas los hago en Visual Basic 6.0
Pero cuando necesito mas velocidad me gustaria usar dlls en Assembler, que tambien conozco un poco. He logrado hacer algunas dlls con MASM32, pero no encuentro la manera de pasar los parametros desde Visual Basic,mejor dicho,como hacer que la dll reciba esos parametros y trabaje con ellos. Gracias de antemano. |
Respuesta: | Manuel |
***** En VB ***
Private Declare Function NombreFuncion Lib "C:\Ruta\NombreDll.dll" _ (ByVal Parametro1 As Long, ByVal Parametro2 As Long) As Long *******En la DLL.asm******* .486 .model flat,stdcall .stack 8000h ; Opciopnal option casemap:none ; Opcional ; Archivos que necesites incluir: include c:\masm32\include\kernel32.inc includelib c:\masm32\lib\kernel32.inc .const ; Constantes si las necesitas .Data ; Datos inicializados que necesites Data? ; Datos sin inicializar que necesites .Code DllEntrada proc hInstancia, Razon, Reservado mov eax,1 ret DllEntrada endp NombreFuncion proc Param1,Param2 mov eax,Param1 mov edx,Param2 ; .... ; .... mov eax, Valor que quieres retornar ret NombreFuncion endp end DllEntrada ****************** *** En Dll.def *** LIBRARY NombreDll EXPORTS NombreFuncion ******************* Si quieres pasarle un String haz lo siguiente: En VB: Private Declare Function NombreFuncion Lib "C:\Ruta\NombreDll.dll" _ (ByVal lpStrA As Any, ByVal lpStrB As Any) As Long Dim VarStr1 As Strin *8192 Dim VarStr2 As Strin *8192 ' tienes que especificar el tamaño. como ejemplo te he puesto 8192 La llamada seria: N = NombreFuncion(VarStr1,VarStr2) N recogera el valor del registro EAX cuando salga de la funcion ASM. La recogida en ASM asi de facil NombreFuncion proc uses edi esi Param1,Param2 mov esi,Param1 mov edi,Param2 mov ecx,8192 shr ecx,2 ; DWORDs cld rep movsd ; ....Esto copiaria String 1 en String 2 ; .... mov eax, 0 ret NombreFuncion endp Por supuesto que los parametros no tienen por que ser del mismo tipo, puedes incluso pasar la direccion de un Array... Espero te sirva... Saludos. |
Respuesta: | Paul Guerra |
Al pasar parámetros a una función, también hay que tener en cuenta que VB utiliza la convensión de llamadas STDCALL. Al utilizar esta convensión de llamada, se deben sacar de la pila todos los parámetros pasados a la función. De lo contrario, VB podría generar un error. |
Respuesta: | Alejandro |
Hola
Al llamar a la función de la DLL se pasan los parámetros a la pila y por último la dirección de retorno. En tu DLL en ASM puedes recoger los parámetros directamente de la pila, (por ejemplo mov eax,[esp+8]) sabiendo siempre que en la primera DWORD a la que apunta la pila está la dirección de retorno. Espero que esto te sirva de ayuda Saludos |
Pregunta: | 7187 - COMO GUARDAR LOS DATOS AL SALIR DEL PROGRAMA |
Autor: | juan navarro |
En masm32, con un EDITTEXT cambio los datos que necesito, pero como puedo guardar los cambios en el fichero al cerrarlo, me gustaria saber que función debo usar o algun tutorial, he intentado con CreateFile pero me parece que me devuelve error porque el fichero está en uso. |
Respuesta: | Victor Pacheco |
hola!
Esa falla es comun si al momento de editar el archivo y quererlo guardar, esta en uso. Te recomiendo que antes de editar el archivo, veridiques que no este siendo utilizado por ninguna aplicacion, (incluso por el mismo MASM) y para que tengas un mejor rendimiento logico, te aconsejo que todos tus archivos los hagas y edites en el editor de MSDOS, guardandolos con la extension ASM. Te sera de gran utilidad este metodo de programacion. Saludos! Victor Pacheco |
Pregunta: | 7309 - FUNCIONAMIENTO DE MEMORIA PENTIUM |
Autor: | RAUL AYALA OVANDO |
Quisiera saber el funcionamiento de lña memoria pentium.Es para una materia de lenguaje ensamblador,por otra parte esta pagina esta de maravilla y muy completa. |
Respuesta: | Jorge Luis Peralta |
Te recomiendo que trabajes en modo protegido.
Aparenteme es dificil, pero en modo protegido es mas facil. La ventaja es que te olvidas de los segmentos, o sea si tienes datos mayores a 64Kbytes no hay problema porque puedes manejar en un solo segmento hasta con datos hasta 4 Gbytes. Para la manipulacion de datos en memoria tienes que tener en cuenta que debes trabajar con registros de 32 bits ESI, EDI y EBX en lugar de SI, DI, BX. La asignacion de Segmentos, descriptores de eso se encarga el sistema operativo, por lo que te recomiendo no los toques. |
Respuesta: | numen numen |
El funcionamiento de la memoria en el Pentium es idéntico al del i386 y todos los microprocesadores tipo intel de 32 bits. Esencialmente existen para estos micros tres modos de operación:
1) Modo real: La memoria consiste en 1Mb en total, y se direcciona mediante el mecanismo de segmento:offset. Esencialmente, el bus de memoria es de 20bits (1Mega), asi que se usan dos registros de 16bits (seg/off). El segmento se multiplica por 16 y se suma al offset. Con eso se obtienen 20 bits. Usualmente el segmento se deja fijo y se varía el offset, de forma que sólo se direccionan cómodamente 16bits (64Kb) de los 20. Este es el método primitivo de los primeros micros de Intel (8086-80186). 2) Modo protegido: Si el modo real te parece complicado, el modo protegido es peor. Hace falta un pequeño libro para describirlo, así que te sugiero que te leas los manuales de intel (www.intel.com). Esencialmente, se emplea un bus de memoria de 32bits (4Gb direccionables) con la posibilidad de paginar memoria en el disco duro. Se establecen mecanismos para proteger la memoria, de forma que no puedes acceder (en general) a toda la memoria a menos que tengas privilegios para ello. Ahora los offset son de 32bits, en tanto que los segmentos indican una entrada en una base de datos (GDT) donde se describen los límites, permisos, etc. que se conceden a ese segmento para acceder a la memoria. Este mecanismo es necesario para hacer sistemas operativos multiusuario y multitarea, pues la memoria no puede ser usada promiscuamente. 3) Modo v86 (virtual-86): Consiste en una simulación del modo real dentro del modo protegido. Es el que emplean algunos extendedores de DOS (como DPMI) para dar más de un mega de memoria baja MSDOS. Espero no haberte asustado. Lo mejor que puedes hacer es irte a Intel.com y bajarte la descripción del i386 a nivel de hardware, donde te explicarán los arcanos de su mecanismo de direccionamiento. Realmente vale la pena si quieres programar tu ordenador a bajo nivel. Aunque de lo dicho arriba tampoco hace falta mucho. En general el sistema operativo de 32 bits que uses se encargará de administrar los segmentos, de forma que no tendrás que preocuparte de nada. |
Pregunta: | 7955 - RESIDENCIA EN MEMORIA |
Autor: | Christopher Calderón Ramos |
Buenas ante todos, Quisiera saber las pautas para hacer un programa que quede residente en memoria en Assembler aunque quiero intentarlo solo consigo que se aloje en memoria con la Int 27h sin que haga nada más si me pueden ayudar se los agradesco mucho
Gracias.. por todo......!!!! |
Respuesta: | Rafael Alb Lopez Alpizar |
Tengo algunos ejemplillos que talvez te ayuden! Si aun necesitas ayuda avisame |
Pregunta: | 8074 - RUTINA JOYSTICK |
Autor: | ElMagelan |
Alguien me puede proporcionar un codigo que controle si se ha pulsado el boton \"A\" o el \"B\" del Joystick?
Mi problema es que tengo una aplicacion en VisualBasic que lee las pulsaciones del boton del Joystick y las añade a un contador. Dicha aplicacion funciona constantemente. Si un usuario pulsa 10 veces el boton A del joystick se suma 10 al contador. Pero si el windows esta cargando una aplicacion IExplorer, Word etc igual solo sube la mitad de las pulsaciones al contador debido a que mi aplicacion se para durante unos instantes. Me han dicho que si se hace una rutina en Esamblador no se perderia las pulsaciones. Estaria muy agradecido si me pudiese ayudar alguien porque no tengo ni idea de Esamblador. Claro que las pulsaciones se deberian guardar en un sitio donde mi Apli las recogeria. |
Respuesta: | cesar gerez |
Lo que puedo ofrecerte es la forma de detectar una señal binaria por un puerto paralelo para que active un evento. En otras palabras, un pulsador o varios que al ser presionados pueden hacer que funcione un contador por pantalla o electronico o haga algo como encender un motor, todo ello en multitarea sin importarle si estas usando la pc para navegar o en aplicaciones que consuman memoria como el mp3.
Si te interesa, decime especificamente que queres que haga y si la pantalla de mando (interfaz) la queres en Visual Basic o en ventana de DOS. Si sabes programar te doy las sentencias de manejo de puertos en lenguaje que mas entiendas, si no te recomiendo usar una DLL que cree en C++ y las sentencias para aplicarla bajo VISUAL BASIC 6.0. Tambien diseño Hardware de aplicación. Todo lo que sea consulta o datos sueltos te lo doy gratis, si queres un proyecto a medida completo con circuito eléctronico, te lo cobro. Si me interesa tu idea...lo hablamos. bye |
Pregunta: | 8565 - LECTURA DESDE TECLADO |
Autor: | Eagleheart |
Hola, necesito informacion sobre como leer cadena ASCII desde teclado y almacenar en posiciones de memoria consecutivas y como hacer para que se permita eliminar caracteres introducidos. Muchas gracias. |
Respuesta: | Martín H. Bustos |
Hola. Recién termino de programar el código fuente del programa que estabas necesitando. Espero haberte entendido bien.
Cualquier duda escribime. Chau... Visualizar Código. |
Respuesta: | J RC |
Hola:
Lo mejor para leer cadenas desde el teclado es utilizar las interrupciones de la ROM BIOS del PC. Puedes consultar cualquier libro de ensamblador sobre PC que te las traerá seguro. En cuanto a almacenarlas, puedes tener un puntero e ir incrementándolo en tantos bytes como tamaño tiene la cadena leída, almacenando las cadenas en posiciones contiguas, aunque es importante no perder la dirección base de la primera cadena, para recorrer luego las direcciones e irlas recuperando. |
Pregunta: | 9014 - COMUNICACIóN MEDIANTE RED |
Autor: | Francisco Riccio |
Como realizo una comunicación entre maquinas que estan conectadas en red y se transmiten mensajes. |
Respuesta: | Jose Luis Fernandez Fernandez |
debes tener activado el programa mesajes emergentes en todas las PC´s y lo activas asi:inicio/ejecutar y en la casilla abrir escribes winpopup y le das aceptar una vez abierto te vas donde dice enviar y pones el nombre de la PC que tiene en la red, escribes el mensaje y le das aceptar y de inmediato lo recibe la PC que le pusiste el nombre.
ojala y le hayas entendido alguna duda escribeme bye |
|< << 1 2 3 4 5 6 7 8 9 10 11 >> >| |