• Sábado 4 de Mayo de 2024, 19:25

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - jaumegs

Páginas: 1 2 [3] 4 5
51
ASM (Ensamblador) / Re: Apagar El Ordenador
« en: Viernes 9 de Diciembre de 2005, 16:21 »
Desde un bootloader... jojojoj...

[explicación]bueno,es que a mi me interesa la programación de los procesadores intel puramente... para asi poder hacer proyectos con procesadores 8086. Y me interesa que los programas que ejecuto estén libres de restricciones sobre el equipo por parte de un SO...

SALUDOS

52
ASM (Ensamblador) / Apagar El Ordenador
« en: Jueves 8 de Diciembre de 2005, 23:37 »
Como puedo hacer para apagar el ordenador? es decir, que se apague completamente y automáticamente , sin necesidad de darle al botón.

Sin SO...

SALUDOS

53
ASM (Ensamblador) / Re: Problema: Pierdo El Cursor... :-s
« en: Jueves 8 de Diciembre de 2005, 23:35 »
Parece buena idea... pero... COMO SE HACE? :P

SALUDOS

54
ASM (Ensamblador) / Re: Problema: Pierdo El Cursor... :-s
« en: Miércoles 7 de Diciembre de 2005, 21:17 »
Bueno, esa es una opción que ya imaginava... pero igual que hay una memoria de video... no hay algo que indique la posición del cursor sin utilizar las INT?

SALUDOS

55
ASM (Ensamblador) / Problema: Pierdo El Cursor... :-s
« en: Miércoles 7 de Diciembre de 2005, 18:15 »
Bueno, suena estraño, pero no lo es tanto...
Mi problema es que al introducir texto directamente en la memoria de video (0B800:XXXX) me va divinamente... pero el problema está en que el cursor... como lo diria... No se mueve :alien: ! Se queda donde eantes...

Como puedo indicarle a que posición debe ponerse? Cual es la dirección de memoria RAM (si es que la tiene) para este fin?

SALUDOS

56
ASM (Ensamblador) / Re: Mbr Disco Duro
« en: Miércoles 7 de Diciembre de 2005, 18:12 »
Bueno, generalmente depende del sistema de archivos que uses... si es FAT12 o 16 o 32 PERFECTO, si es NTFS.... pues realmente no se como se hace...

Bueno, si es FAT el sector de arranque (BOOTSECTOR) contiene cierta información:
Código: Text
  1.  
  2. Des.  Longitud  Descripción
  3. 0x00  3 bytes  Instrucción de salto al programa de arranque
  4. 0x03  8 bytes  Identificación del sistema (fabricante)
  5. 0x0B  1 palabra  Número de bytes por sector
  6. 0x0D  1 byte  Número de sectores por cluster
  7. 0x0E  1 palabra  Número de sectores reservados (con BootSector)
  8. 0x10  1 byte  Número de copias de la FAT
  9. 0x11  1 palabra  Número máximo de entradas del directorio raíz
  10. 0x13  1 palabra  Número total de sectores
  11. 0x15  1 byte  Identificador del disco (F0 para 3 ½ y 1.44MB)
  12. 0x16  1 palabra  Número de sectores para cada FAT
  13. 0x18  1 palabra  Número de sectores por pista
  14. 0x1A  1 palabra  Número de cabezas/caras
  15. 0x1C  1 palabra  Número de sectores ocultos
  16. 0x20  4 byte  Número total de sectores (si 0x13 es 0)
  17. 0x24  1 byte  Número de unidad física (sólo discos duros)
  18. 0x25  1 byte  Reservado
  19. 0x26  1 byte  Byte de marca con el valor 0x29
  20. 0x27  4 bytes  Número de serie del disco
  21. 0x2B  11 bytes  Nombre del disco (NO NAME si no tiene)
  22. 0x36  5 bytes  Tipo de FAT: FAT12 o FAT16
  23. ...  ...  .........
  24. ...  ...  Rutina de Arranque (Bootstrap-Loader)
  25.  

Bueno, esto es necesario si quereis conservar el formato existente... (recomiendo leer documentación sobre la FAT)

Esto ha de estar presente siempre en el BootSector, sino os habreis cargado la FAT... bueno, después de esto va el programa que querais....

Que podeis usar en el?... pues todo, pero solo código de 16bits. Claro está que no se pueden usar interrupciones del DOS, mas que nada porque siempre se arranca el programa del BootSector antes que el SO, asi que si modificais el BootSector de vuestro disco duro... y es el único que teneis, si no haceis una copia del que habia antes de modificarlo, ya no podreis cargar ni WINDOWS ni nada...

Que tamaño puede tener?... generalmente 512bytes, pero si modificas el offset 0Eh(nº sectores reservados) podreis hacer que ocupe el número de sectores que querais... asi que se puede hacer un programa de 2Mb, 3Mb, 500Mb... ya dependerá de la capacidad de vuestro disco duro, y claro está... de la RAM...

PD IMPORTANTE- Si modificas el BootSector de tu disco duro principal(es el que arranca el SO que usas) y no sabes como recuperarlo luego... tendras que formatear el disco i reinstalar el SO. Así que recomiendo hacer una copia de este sector antes de tocar nada (Con el winhex por ejemplo) o practicar con disketes, que el método es el mismo.

Bueno, si os interesa mas información podria hacer un MINImanual (y digo mini porque mis conocimientos de ASm... :P , pero podria introducir datos acerca el sistema de archivos FAT que este si que me lo conozco)

SALUDOS

57
ASM (Ensamblador) / Re: Mbr Disco Duro
« en: Miércoles 7 de Diciembre de 2005, 08:10 »
Teóricamente por lo que se, para programar el sector de arranque de un disco es necesario usar el procesador en modo 16bits. Despues de eso ya se puede arrancar el modo protegido del ensamblador(32 bits).

Si se hace del mismo modo que con un disquete, es sencillo, solo has de cargar en el sector 0 del disco duro el programa que quieras que te carge, con algunas peculiaridades...

P.D.- Da igual el sistema operativo que estés utilizando... Al iniciarse el ordenador leerá el MBR lo primero, y cargará el programa que haya en el, "substituyendo" al sistema operativo que tuvieras instalado.

SALUDOS

58
ASM (Ensamblador) / No Logro Entender La Fat
« en: Martes 6 de Diciembre de 2005, 02:39 »
He intentado hacer un programa que me lea la disquetera desde un disco bootable(sin SO), lo que quiero es que lea un diskette con el formato FAT12(reconocible en DOS y WINDOWS).

Entiendo la teoria de la FAT12 y la FAT16 pero no se apricarlo en un programa... :(

Sabeis de webs que hablen sobre ello aplicado en ASM, a ser posible en español?
O algún ejemplo...

SALUDOS :P

59
ASM (Ensamblador) / Ver El Código Máquina De Un Programa
« en: Martes 6 de Diciembre de 2005, 00:11 »
Cómo puedo ver el código máquina de un programa sin tener que recurrir a un editor hexadecimal? Es decir, algo similar a esto:

Código: Text
  1.  
  2. Offset         C.M.              Mnemónicos....
  3. 00000000    45                inc bp
  4. 00000001    42                inc dx
  5. 00000002    334339         xor ax,[bp+di+0x39]
  6. 00000005    3032            xor [bp+si],dh
  7. 00000007    3937            cmp [bx],si
  8. 00000009    3833            cmp [bp+di],dh
  9. 0000000B    363232         xor dh,[ss:bp+si]
  10. ...                ...                 ...
  11.  
  12.  

SALUDOS

60
C/C++ / Asm Y C
« en: Domingo 4 de Diciembre de 2005, 13:04 »
Como puedo introducir código en ensamblador dentro de un programa en C?

Sabeis de alguna web que lo explique o ponga ejemplos(en español)?

SALUDOS ;)

61
ASM (Ensamblador) / Interrupciones
« en: Sábado 3 de Diciembre de 2005, 17:44 »
Me ha surgido una duda.

En los microcontroladores PIC, existen las interrupciones(faltaria más :P ), al aparecer una interrupción, como por ejemplo un cambio de estado en una de sus patillas(no es en todas, pero es irrelevante), el microcontrolador lo que hace es direccionar el IP del programa a la dirección 0x04 i seguir por alli el programa(en esa dirección se escribe un pequeño código que interprete que ha provocado tal interrupción, y hacer lo que sea necesario).

Mi duda es la siguiente: ¿Cómo lo hacen los PCs(Intel)?,¿Existen esas interrupciones?, Por ejemplo, si pulso una tecla del teclado, en vez de tenerlo que mirar constantemente, se transfiere el IP a algun lado, o que sucede?

He leido que si que existen en los PCs, pero no he encontrado ejemplos de ello.

Nota: No me refiero incluir INT 0x10 en el código.

SALUDOS :smartass:

62
ASM (Ensamblador) / Re: Disquetera Y Disco Duro
« en: Sábado 3 de Diciembre de 2005, 17:35 »
ok muchas gracias. No repetire más esas expresiones ;)

Estube mirando el diOS, pero no recaí en que allí se usava la disquetera :unsure:

SALUDOS :hola:

63
ASM (Ensamblador) / Re: Disquetera Y Disco Duro
« en: Jueves 1 de Diciembre de 2005, 21:52 »
Un ejemplo iria... :P  No queva(bueno, si os animais...) Pero mas o menos como van los parametros de entrada i para que sirven, y los de salida. :D

 :kicking: SALUDOS

64
ASM (Ensamblador) / Re: Disquetera Y Disco Duro
« en: Jueves 1 de Diciembre de 2005, 21:49 »
Bf.. he estado mirando esta interrupción i no la entiendo muy bien (la 13h) alguien podria darme una breve explicación? Lo agradeceria mucho.

GRACIAS! :P

65
ASM (Ensamblador) / Re: Funciones Varias.
« en: Miércoles 30 de Noviembre de 2005, 22:32 »
Bueno, para crear una función que borra la pantalla(sin SO), he leido que si voy a:
B800:0000 y voy restableciendo los bytes a cero... hasta llegar a B800:( 80 x 25 x 2 ), se borra la pantalla.

Cono quedaria un código con esto?

(esque a esta parte de direccionamiento... aun no llega mi mente, i un ejemplo caido de los cielos... :smartass: )

SALUDOS :D

66
ASM (Ensamblador) / Re: Disquetera Y Disco Duro
« en: Miércoles 30 de Noviembre de 2005, 21:36 »
No, no mo referia a eso(pero gracias de todos modos) me referia a "como?"... lo de la bios era una especificacion.. como decir: el ejemplo puede usar la bios, pero si no la usa... mejor aun... :unsure:

jajaj

SALUDOS

67
ASM (Ensamblador) / Re: Interrupciones De La Bios
« en: Miércoles 30 de Noviembre de 2005, 20:38 »
Bueno... no es que se pueda decir que de una gran informacion sobre sus funciones...  :whistling:

68
ASM (Ensamblador) / Re: Disquetera Y Disco Duro
« en: Miércoles 30 de Noviembre de 2005, 20:18 »
Y dado el caso de que no hubiera sistema operativo instalado(...)

Como se podria manejar el diskete?
Usando funciones de la BIOS... o directamnet usando el hardware.

SALUDOS.

69
ASM (Ensamblador) / Re: Interrupciones De La Bios
« en: Miércoles 30 de Noviembre de 2005, 16:44 »
Mil gracias!!!

Pero.. :(  no incluye las funciones de la interrupcion 0Eh:(

Sabeis de alguna otra web que si las incluya?

SALUDOS

70
ASM (Ensamblador) / Re: Sintaxis Nasm
« en: Miércoles 30 de Noviembre de 2005, 16:39 »
jeje OK

SALUDOS y gracias :kicking:

71
ASM (Ensamblador) / Re: Interrupciones De La Bios
« en: Miércoles 30 de Noviembre de 2005, 14:49 »
Hola, me gustaria saber si alguien tiene documentación sobre todas las interrupciones de la bios y sus funciones. Yo he encontrado documentación sobre varias... pero solo de unas cuantas... (la 10h la 17h... y poca cosa mas).

Si alguien conociera una web o algo por la red... le estaria eternamente agradecido! :D

SALUDOS

72
ASM (Ensamblador) / Re: Sintaxis Nasm
« en: Miércoles 30 de Noviembre de 2005, 14:24 »
No son para windows :(

Pero si sin los que yo estoy usando :alien:

73
ASM (Ensamblador) / Funciones Varias.
« en: Miércoles 30 de Noviembre de 2005, 01:17 »
Bueno, voy a pedir unas cuantas cosas...

Como podria hacer una instruccion que borra la pantalla(sin usar las interrupciones del DOS y al ser posible las de la BIOS)?
bueno... una forma seria:

Código: Text
  1.  
  2.  
  3. mov si,cadena
  4. call ponecadena
  5.  
  6. ponecaracter:
  7.   push ax  &#59; Guardamos AX
  8.    
  9.   mov ah,0eh&#59; Funcion putChar de la Bios
  10.   int 10h  &#59; Interrupcion de video
  11.  
  12.   pop ax  &#59; Recuperamos AX
  13.   ret
  14.  
  15. ponecadena:
  16.   push ax  &#59; Se ponen en la pila los valores que modificamos
  17.   push si
  18.  
  19. loop:
  20.   mov al,[si]                 &#59; Se carga el caracter
  21.   cmp al,0                 &#59; Nos fijamos si es el terminador
  22.   jz fin  &#59; Si es el terminador se termina
  23.   call ponecaracter&#59; sino, se pone el caracter
  24.   inc si  &#59; Se incrementa SI
  25.   jmp loop  &#59; Continuamos con el siguiente caracter
  26.  
  27. fin:
  28.   pop si  &#59; Se recuperan los valores
  29.   pop ax
  30.  
  31.   ret
  32.  
  33. cadena times 25 db 10(25 veces intro)
  34.  
  35.  
  36.  
  37.  
pero... no va muy bien que se pueda decir... Que otros modos mas efectivos hay?

Aqui van un par de funciones que no logro sacar(son funciones de la libreria conio.h del borland, para C/C++):

gotoxy
textbackwroundcolor
textcolor
wherwisx
whereisy
clrscr(ya la he pedido en el principio)

Bueno, respondan a las que quiera y puedan, les estare muy agradecido. Yo lo estoy intentando, y supongo que acabare sacandolo. Pero agradeceria ayuda. Al ser posible sin usar las interrupciones del DOS, y lo menos posible las de la BIOS.

MUCHAS GRACIAS

SALUDOS :smartass:

74
ASM (Ensamblador) / Interrupción 10h
« en: Miércoles 30 de Noviembre de 2005, 01:05 »
:rolleyes: Siento ser pesado... pero cuando uno esta aprendiendo...

Una pregunta de estas boba...
La interrupción 10h es del BIOS o del DOS?
lo he buscado i me la explica i tal... pero no he encontrado(o no he mirado bien...) si es del bios o del dos...

SALUDOS

75
ASM (Ensamblador) / Re: Sintaxis Nasm
« en: Miércoles 30 de Noviembre de 2005, 00:52 »
Es multiplataforma, i va bastante bien. Y lo mas importante, gratuito...

Páginas: 1 2 [3] 4 5