{"id":27011960,"url":"https://github.com/zrafa/mipsx","last_synced_at":"2025-04-04T11:38:58.007Z","repository":{"id":77326653,"uuid":"12001388","full_name":"zrafa/mipsx","owner":"zrafa","description":null,"archived":false,"fork":false,"pushed_at":"2023-10-08T15:18:34.000Z","size":7287,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-10-08T16:29:36.244Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zrafa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2013-08-09T13:23:45.000Z","updated_at":"2023-08-17T15:02:23.000Z","dependencies_parsed_at":null,"dependency_job_id":"fa4a2378-a7f8-46ec-bba7-22eb465329c7","html_url":"https://github.com/zrafa/mipsx","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zrafa%2Fmipsx","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zrafa%2Fmipsx/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zrafa%2Fmipsx/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zrafa%2Fmipsx/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zrafa","download_url":"https://codeload.github.com/zrafa/mipsx/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247173826,"owners_count":20896070,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-04-04T11:38:57.432Z","updated_at":"2025-04-04T11:38:58.002Z","avatar_url":"https://github.com/zrafa.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"mipsx\n=====\n\nmipsx es una interfaz grafica para desarrollar programas en lenguaje ensamblador MIPS. Trabaja en conjunto con sistemas MIPS emulados y reales.\n\nmipsx permite ensamblar y vincular los programas desarrollados. Tambien ejecutar, y al mismo tiempo analizar, los programas compilados a través del debugger gdb. A partir de estas características, es posible realizar todo el proceso de desarrollo y verificación de programas en lenguaje ensamblador con una única herramienta, mientras que los programas pueden ser ejecutados y analizados en diferentes sistemas MIPS.\n\n```\n * Copyright (C) 2014 Rafael Ignacio Zurita \u003crafa@fi.uncoma.edu.ar\u003e\n *\n *   mipsx and examples are free software; you can redistribute it and/or modify\n *   it under the terms of the GNU General Public License as published by\n *   the Free Software Foundation; either version 2 of the License, or\n *   (at your option) any later version. Check COPYING file.\n```\n\nOriginalmente pensada para programar en lenguaje ensamblador de MIPS\naunque la aplicación puede ser utilizada para programar en lenguaje ensamblador (entorno de desarrollo) de otras arquitecturas remotas.\n\nmipsx fue verificado contra equipos remotos de arquitectura MIPS, reales y emulados. En particular, se ha verificado su uso contra qemu-mips y qemu-mipsel (ambos con sistema DEBIAN GNU/Linux), computadora Ben Nanonote (hw mipsel)\ntplink mr3020 (hw mips big endian hw), y board SIE (hw mipsel little endian).\n\nCada vez que el alumno realiza un click en \"compilar y cargar\" el\narchivo fuente es ensamblado y vinculado en la maquina MIPS remota.\nLuego, se inicia automaticamente gdbserver en el sistema mips,\ncon el programa binario generado. La interfaz grafica mipsx\nutiliza entonces gdb-multiarch para controlar el gdbserver remoto,\ny mostrar en los distintos paneles de informacion, el estado\nde la maquina mips remota y la ejecución paso a paso del programa.\n\nLa información que el usuario (alumno) puede analizar mientras\nejecuta su programa es :\n\n- Listado del programa con lineas numeradas.\n- Archivo binario decodificado (disassemble), util para verificar como se implementan las pseudoinstrucciones en instrucciones reales.\n- Los registros de la CPU MIPS y su contenido.\n- La memoria, que incluye, los diferentes segmentos de datos, de texto y la pila.\n- Mensajes de depuracion de GNU as, ld y gdb, indicando el estado de la ejecucion del programa en curso.\n- Panel de edición del archivo fuente.\n\nDe esta manera, la aplicación permita la programación en lenguaje ensamblador\nen un editor grafico. Además, la aplicación utiliza el ensamblador GNU as, el vinculador\nGNU ld y el programa de debug gdb. Todos estos programas son el estandar\nen la industria, por lo que el alumno puede observar y verificar\nla ejecucion de sus programas en CPUs MIPS, utilizando la informacion\nprovista por programas de desarrollo estandar.\n\nRequisitos\n----------\n\nSe necesita tener instalado :\nsshpass\npython-tk\ngdb-multiarch\n\nSe necesita que en la maquina destino el usuario root tenga como clave root (configurable).\n\n\nUso\n---\n\nEjecutar con un interprete de python ```mipsx_tk_gui.py``` \n\nScreenshot\n----------\n\n![alt tag](https://raw.github.com/zrafa/mipsx/master/mipsx.jpg)\n\n\nExtras\n------\n\nHay una seria de programas ejemplos, en lenguaje ensamblador mips:\n\n- Un hello.s (hello world). \n- Dos programas ejemplo para utilizar llamadas al sistema Linux, y mostrar caracteres en salida estandar.\n- Entrada y Salida programada : El directorio ``` uart-mips ``` contiene un programa verificado que mapea la direccion del registro base UART de la board SIE a una palabra etiquetada del segmento de datos de un programa en lenguaje ensamblador mips. Luego, el programa ensamblador utiliza dicha direccion para acceder a los registros UART y enviar/leer caracteres asciis.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzrafa%2Fmipsx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzrafa%2Fmipsx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzrafa%2Fmipsx/lists"}