Diferencia entre revisiones de «Ayuda sobre el Microensamblador de AMD 29203»
(Usando el programa en GNU/Linux) |
|||
(No se muestran 4 ediciones intermedias de 2 usuarios) | |||
Línea 6: | Línea 6: | ||
;Inicio del microprograma | ;Inicio del microprograma | ||
;Los comentarios se escriben tras ";" | ;Los comentarios se escriben tras ";" | ||
+ | |||
+ | ;definición de variables de forma simbólica | ||
+ | PC EQU .E ;cuando escribamos PC nos estaremos refiriendo al registro .E | ||
+ | |||
+ | ; captacion de instrucción | ||
+ | ORG H'0 ;Debe estar en la dirección 0 | ||
+ | ld IR, [PC] ;Cargamos en el registro de instrucción la dirección | ||
+ | ;que indica el PC | ||
+ | inc PC ;Incrementamos el contador de programa | ||
+ | jmap ;Esto salta a la dirección de memoria correspondiente | ||
+ | ;al código de operación de la instrucción. Consultar | ||
+ | ;la tabla de correspondencia de la PROM. | ||
+ | |||
;Una instrucción | ;Una instrucción | ||
− | ORG H'102 ;Esta es la dirección en la memoria de microinstrucciones donde se situará. | + | ;Conviene que en los comentarios indiquéis qué hace cada instrucción. |
+ | ;Ésta carga en IRB el contenido de la dirección contenida en IRA | ||
+ | ORG H'102 ;Esta es la dirección en la memoria de | ||
+ | ;microinstrucciones donde se situará lo que | ||
+ | ;pongamos a continuación. | ||
+ | |||
ld IRB, [IRA] & jmpz ;Esta es la microinstrucción. Ya que una microinstrucción | ld IRB, [IRA] & jmpz ;Esta es la microinstrucción. Ya que una microinstrucción | ||
;hace varias cosas, cada cosa se separa por "&" | ;hace varias cosas, cada cosa se separa por "&" | ||
;jmpz vuelve a la dirección 0, y suele ponerse | ;jmpz vuelve a la dirección 0, y suele ponerse | ||
+ | ;Puede haber más microinstrucciones | ||
+ | |||
+ | ;Otra instrucción | ||
+ | ORG H'10C | ||
+ | [...] | ||
+ | |||
+ | ;Así sucesivamente. | ||
+ | |||
+ | END ;Los microprogramas deben terminar con END. Si no lo hacen | ||
+ | ;el microensamblador dará error de sintaxis, pero no | ||
+ | ;aclarará nada. | ||
+ | |||
+ | |||
</nowiki> | </nowiki> | ||
+ | |||
+ | |||
+ | ==Usando el programa microensamblador== | ||
+ | |||
+ | ===Usar en el microensamblador un programa hecho con MenuAMD=== | ||
+ | |||
+ | Carga el programa ''.amd''. Dale al botón ''Desensamblar''. Aparecerá un archivo ''.out'' (al que hay que ignorar) y un archivo ''.uen'' con el código en ensamblador correspondiente. | ||
+ | |||
+ | ===Usar en MenuAMD un programa hecho con microensamblador=== | ||
+ | |||
+ | Carga el program ''.uen'' y dale a ''Ensamblar''. El archivo resultante tiene el mismo formato que los archivos que guarda MenuAMD. | ||
+ | |||
+ | ===Usar el programa bajo GNU/Linux=== | ||
+ | |||
+ | Si estás usando este sistema operativo no es necesario que cambies a Windows para usar el microensamblador. Este programa funciona bastante bien con ''wine'', un programa que permite usar en GNU/Linux programas para Win32. | ||
+ | |||
+ | El problema puede ser consultar la ayuda. Lo mejor que he encontrado para ello es ''helpdeco'', un decompilador de archivos de ayuda de Microsoft. Con él puedes decompilar el ''hlp'' obtener el ''rtf'' que sirve como base para crearlo. | ||
+ | |||
+ | NOTA: MenuAMD y el simulador también funcionan con ''wine''. | ||
+ | |||
+ | ==Directivas y microinstrucciones== | ||
+ | |||
+ | Se puede consultar la documentación sobre ello en un archivo de ayuda de Windows que viene con el microensamblador llamado ''amdhelp.hlp''. | ||
+ | |||
+ | Si te encuentras mareado con tantas microinstrucciones y no sabes por dónde empezar a aprender, mi consejo es que hagas algunas instrucciones con [[MenuAMD]], las desensambles y empieces consultando la documentación sobre ellas. |
Revisión actual del 03:58 28 nov 2005
Un microprograma en microensamblador es un conjunto de microinstrucciones y directivas. Yendo a lo práctico, un microprograma es un fichero con esta estructura
Contenido
Estructura de un microprograma
;Inicio del microprograma ;Los comentarios se escriben tras ";" ;definición de variables de forma simbólica PC EQU .E ;cuando escribamos PC nos estaremos refiriendo al registro .E ; captacion de instrucción ORG H'0 ;Debe estar en la dirección 0 ld IR, [PC] ;Cargamos en el registro de instrucción la dirección ;que indica el PC inc PC ;Incrementamos el contador de programa jmap ;Esto salta a la dirección de memoria correspondiente ;al código de operación de la instrucción. Consultar ;la tabla de correspondencia de la PROM. ;Una instrucción ;Conviene que en los comentarios indiquéis qué hace cada instrucción. ;Ésta carga en IRB el contenido de la dirección contenida en IRA ORG H'102 ;Esta es la dirección en la memoria de ;microinstrucciones donde se situará lo que ;pongamos a continuación. ld IRB, [IRA] & jmpz ;Esta es la microinstrucción. Ya que una microinstrucción ;hace varias cosas, cada cosa se separa por "&" ;jmpz vuelve a la dirección 0, y suele ponerse ;Puede haber más microinstrucciones ;Otra instrucción ORG H'10C [...] ;Así sucesivamente. END ;Los microprogramas deben terminar con END. Si no lo hacen ;el microensamblador dará error de sintaxis, pero no ;aclarará nada.
Usando el programa microensamblador
Usar en el microensamblador un programa hecho con MenuAMD
Carga el programa .amd. Dale al botón Desensamblar. Aparecerá un archivo .out (al que hay que ignorar) y un archivo .uen con el código en ensamblador correspondiente.
Usar en MenuAMD un programa hecho con microensamblador
Carga el program .uen y dale a Ensamblar. El archivo resultante tiene el mismo formato que los archivos que guarda MenuAMD.
Usar el programa bajo GNU/Linux
Si estás usando este sistema operativo no es necesario que cambies a Windows para usar el microensamblador. Este programa funciona bastante bien con wine, un programa que permite usar en GNU/Linux programas para Win32.
El problema puede ser consultar la ayuda. Lo mejor que he encontrado para ello es helpdeco, un decompilador de archivos de ayuda de Microsoft. Con él puedes decompilar el hlp obtener el rtf que sirve como base para crearlo.
NOTA: MenuAMD y el simulador también funcionan con wine.
Directivas y microinstrucciones
Se puede consultar la documentación sobre ello en un archivo de ayuda de Windows que viene con el microensamblador llamado amdhelp.hlp.
Si te encuentras mareado con tantas microinstrucciones y no sabes por dónde empezar a aprender, mi consejo es que hagas algunas instrucciones con MenuAMD, las desensambles y empieces consultando la documentación sobre ellas.