Hay un total de 123 Preguntas. | << >> |
Pregunta: | 53590 - WINDOWS XP Y ENSAMBLADOR |
Autor: | Oscar Urdaneta |
Mi problema es el siguiente, tengo una rutina en ensamblador que al finalizar llama a la INT 19h para arrancar la maquina desde la unidad de disquete, cambiamos el MS-DOS 6.22 a Windows XP y la aplicacion ya no funciona, es mas, hay muchas otras cosas que no hace, por ejemplo la actualizacion de la fecha y hora, que sucede?
Sera que windows mueve los vectores de interrupcion a otro lado? Si hay alguna forma de solucionarlo les agradeceria la ayuda, de otro modo me va a tocar regresarme a MS-DOS 6.22 |
Respuesta: | gabriel Amezquita |
En Efecto XP desactiva las funciones de la BIOS.
No puedes reiniciar la maquina usandop la INT 19, Windows no te lo permite, tampoco cambiar la fecha, Ni puedes acceder directamente al disco, esto se debe a que XP activa el modo protegido, ahora es el sistema operativo quien administra el hardware, si quieres usarlo, tienes que pedir permiso al XP, un asunto demasiado complicado, Mejor Sigue usando MS-DOS |
Pregunta: | 54905 - MULTIPLICAR UN REGISTRO DE 32 BITS POR UNO DE 16 |
Autor: | raquel hernandez |
hola!!pos lo que pone el titulo.soy nueva en ensamblador y odavia no controlo mucho,pero se que debo hacer este programa sin hacer uso de los registros eax(32 BITS) tengo que arreglamerlas con los de 16.pero por mas k lo intento no veo la luz.podeis echarme una mano??
gracias!! |
Respuesta: | pablo jorquera tapia |
Prueba con compiladores como el AS o el GAS (GNU Assembler) para x86, o el NASM. O si no, con una version no muy vieja de TASM para DOS o Win32. |
Respuesta: | pablo jorquera tapia |
No no, espera, ¿ dije "usar un compilador de 32 bits"? lo que queria decir es que uses instrucciones como MUL o IMUL. no creo que puedas hacer una instruccion como MUL EAX, EBX, pretendendo ser EAX * EBX. Tiene que ser la instruccion destino sola (MUL EAX). Ahora si, como mencione puede ser culpa de un compilador antiguo como los diseñados para DOS de 16 bits, tendrias que buscar uno mas nuevo que pueda usar registros de 32 bits del 386. |
Pregunta: | 55899 - COMO CE MANDA A PANTALLA LA HORA DEL SISTEMA EN ENSAMBLADOR |
Autor: | cristian sanchez mendoza |
de que para leer la hora de utiliza la instruccion
mov ah,2ch y esta la guarda el ch= hora en cl= minutos pero como extraigo esa informacion para mandarla a pantalla |
Respuesta: | yerko chapanoff |
Hola, lo que tienes que hacer es utilizar la interrupcion 21/02 para imprimir un caracter a pantalla, en rigor lo que hace esta instrucción es escribir el caracter de la tabla ascii equivalente al valor hexa que tengas cargado en el registro. Ahora el detalle es que la instrucción que indicas para rescatar la hora, entrega la hora y minutos pero en Hexa, por lo tanto, para poder utilizar la instrucción 21/02 hay que pasar cada dígito al valor hexa que corresponda al caracter visual que queremos imprimir. Para esto, lo primero es tomar la hora, que es un dato de 2 digitos y separarlo en 2 digitos, para luego transformar cada uno al valor hexa que corresponda al número. Para separar el número en 2 dígitos, lo divides por 10 (A en Hexa) y con eso en el cuociente te quedarán la decena y en el resto te quedarán las unidades. Ahora ya tienes separado el número en 2 dígitos, pero aún siguen siendo hexas, ahora lo que se hace para poder imprimir por pantalla el equivalente ascii, se le debe sumar 30H a cada dígito, o sea, suponiendo que tienes cargado el 5H en DL, haces ADD DL, 30H (quedará DL=35h) y luego MOV AH, 02H y luego INT 21, lo cual imprimirá el caracter equivalente al 35H en la tabla ascii que si revisas verás que es justamente el caracter "5". De la misma forma lo haces para los otros dígitos.
Espero te sirva. saludos! Yerko Chapanoff |
Pregunta: | 55952 - SEPARAR CARACTERES DE UNA CADENA EN MEMORIA |
Autor: | hipolito lovera |
Hola como estan, espero que con tranquilidad.
Bueno les pido una ayuda de buen amigo. por una parte. mi pregunta es lo siguiente: una vez introducida una cadena por teclado, quiero sacar por puerto paralelo los caracteres de una cadena que reside en memoria, es decir, sacarlo letra por letra ademas debe mostrarse n veces la misma secuencia de las letras. por otra. El otro problema que tengo es: Como mantiener activo, o sea en 1, un pin del puerto paralelo mientras una tecla determinada se mantiene presionada y justo cuando se deja de presionar, el pin mencionado tambien se desactiva. Todo esto quiero realizar con el ensamblador ASM gracias de antemano, espero esta pagina nos ayude a los que de verdad lo necesitan. |
Respuesta: | xabi GA |
Hola
En algo te puedo ayudar, sobre la segunda pregunta, yo utilizaria algun timer que me leyera la tecla cada cierto tiempo y que comparar el resultado anterir y actual de la tecla pulsada, si son iguales mantengo el led encendido y si son diferentes lo apago, con unos 20 ms creo que bastaria, esto se utiliza para evitar rebotes en los pulsadores ()almenos yo lo hago asi). sobre la cadena, bastaria con crear un cadena de caracteres y un punerto que recorra esa cadena, identifique el caracter y lo envie por el puerto paralelo. saludos y espero haberte servido de ayuda pd: yo me cambiaria a lenguaje C, es mas facil de programar |
Pregunta: | 58304 - COMO VISUALIZAR LOS RESULTADOS EN MASM |
Autor: | Frey Rey |
He ejecutado archivos en el masm y los linked pero cuando ejecuto el .exe solo muestra una pantalla rapidamente y no puedo ver resultados, como puedo hacer para mejorar este problema o hay algun comando para fijar la pantalla como se hace en pascal o c, gracias. |
Respuesta: | David Martinez |
es porque necesitas colocar una pausa, esto lo logras agregando
xor ah,ah int 16h antes de finalizar el programa, y listo, se te ejecuta, muestra tu resultado y luego de presionar una tecla al final de todo continua y se cierra |
Pregunta: | 58345 - HORA DEL SISTEMA |
Autor: | diana miranda |
hola me pueden ayudar por favor...necesito imrpimir en la pantalla la hora del sistema conla funcion 2Ch de lainterrupcion 21h el porblema es que al momento de imrpimir me salen caracteres ascii y nolos numeros que deberian salir... como cambio ese codigo para que salga eñ numero especifico y no el simbolo.por fa ayudenme de urgencia |
Respuesta: | yerko chapanoff |
Diana,
lo que pasa es que la instrucción para imprimir, lo que hace es imprimir el caracter ascii correspondiente al hexa que esté cargado en DL. Ahora supongamos que son las 5, rescatas la hora y se la asignas a DL y la imprimes directo: te aparecerá un caracter extraño, ya que ese caracter extraño es el equivalente en la tabla ascii al 5 en hexa. Para corregir esto, hay un simple truco que consiste en sumarle 30h al valor hexa original, con lo cua se obtiene el valor hexa correspondiente al caracter deseado, en este caso "5". Suponiendo que tienes cargado el 5H en DL, haces ADD DL, 30H (quedará DL=35h) y luego MOV AH, 02H y luego INT 21, lo cual imprimirá el caracter equivalente al 35H en la tabla ascii que si revisas verás que es justamente el caracter "5". Ahora este truco funciona sólo para un dígito, por lo que si tienes un número que tenga dos dígitos como la hora, lo que tienes que hacer primero es separar este número en 2 dígitos y luego aplicar el truco anterior para cada uno. Como los separamos? muy sencillo, tomas el número de 2 dígitos y lo divides por 10 (A en hexa), tras lo cual te quedará en el cuociente la decena (0 a 9) y en el resto las unidades (0 a 9). Ahora para la decena aplicas el truco anterior y lo imprimes, lo mismo para las unidades y ya tendrás la hora impresa por pantalla. saludos, Yerko Chapanoff |
Pregunta: | 60004 - PASAR DE C A HEX |
Autor: | Luis Miguel Lopez Hidalgo |
Necesito pasar un archivo en C (txt) a HEX para poder grabar un PIC 16F876. He visto algunos pero el problema es que vienen en ingles y yo no lo domino.
Me podriais ayudar? Atte. Luis Miguel de Málaga |
Respuesta: | Helmuth Quiroa |
hola, puedes usar el compilador MikroC de Mikroelectronica, ala hora de depurarlo el compilador te lo convierte a .hex |
Pregunta: | 61038 - CARGAR CONTENIDO DIRECCION DE MEMORIA |
Autor: | Roberto Palomares |
Buenos días:
A ver si alguien me puede ayudar. Con que instrucción se puede leer el contenido de un dirección de memoria?? la $s0,BUFFER (me lee la direccion de memoria pero no lo que hay dentro de la memoria) lw $s0,BUFFER que en un principio que creía que era la opcion correcta no me funciona. |
Respuesta: | Gabriel Amd |
debes poner la direccion de memoria en corchetes
mov eax,[buffer] recuerda que existen muchos modos de direccionamineto, directo, indirecto, indexado, etc |
Pregunta: | 61405 - ENVIAR Y RECIBIR DATOS POR EL PUERTO USB |
Autor: | heidy villa |
hola
tengo la siguiente pregunta acerca de como se pueden enviar y recibir datos a traves del puerto usb trabajando con el lenguaje ensamblador para prender unos leds de una protoboard el que me pueda ayudar con las direcciones o con algo relacionado muchisimas gracias |
Respuesta: | gabriel amd |
porque no utilazas mejor el puerto paralelo, es mas facil y divertido.
Para usar USB desde MS-DOS necesitas programarlo desde cero, una ardua tarea muy laboriosa. en windows leer muchos APIs, igual de fustrante. |
Pregunta: | 63814 - MARQUESINAS EN LENGUAJE ENSAMBLADOR |
Autor: | juan fernandez |
necesito hacer una marquesina en leguaje ensamblador?
la idea es de pintar en la pantalla el ultimo caracter de mi lista y ir poniendo ese caracter en una posicion adelante y borrar atras y escribir atras el otro caracter que tengo en la ultima posicion -1 necesito ayuda |
Respuesta: | Enrique Palomares H |
Hola Juan Fernández Ami también me dejaron el mismo proyecto de la marquesina en ensamblador y quisiera preguntarte si pudiste hacerlo y si me pudieras ayudar a conseguir el programa para hacer mi proyecto espero y me puedas ayudar Bro puedes contestarme a este correo |
|< << 3 4 5 6 7 8 9 10 11 12 13 >> >| |